centos 秘钥登录(免密码登录)

centos 秘钥登录(免密码登录)

原理很简单,私钥、公钥对匹配实现免密码登录。(登录git仓库时用的就是公钥)

形象点讲一对钥匙(私钥+公钥),私钥对应的(钥匙),公钥对应(锁);当你把公钥(锁)拷贝到指定的主机或集群中,那么拥有私钥(钥匙)的主机,就可以实现免密登录拥有公钥(锁)的主机。

https://qnimg.ffing.cn/wp-content/uploads/2023/08/image-1.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

所以,一般我们生成的钥匙对需要谨慎保存,

流程:

  • 生成秘钥对,公钥(id_rsa.pub)和私钥(id_rsa)
  • 公钥导入到~/.ssh/authorized_keys
  • 修改sshd配置,开启秘钥验证
  • 连接测试

第一步:生成秘钥对

#-t rsa 生成的秘钥的加密格式
ssh-keygen -t rsa
#生成两个文件
私钥:~/.ssh/id_rsa
公钥:~/.ssh/id_rsa.pub

一路回车,默认即可。

https://qnimg.ffing.cn/wp-content/uploads/2021/10/image-18.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

第二步:公钥导入~/.ssh/authorized_keys

~/.ssh/authorized_keys为公钥指纹保存文件,用来存储公钥,若有多个公钥都保存在次文件。

(为什么是~/.ssh/authorized_keys:因为sshd配置中默认配置是这个,所以为了减少后面操作多此一步,当然你也可以改sshd配置)

cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

第三步:修改sshd配置,开启秘钥验证

编辑/etc/ssh/sshd_config

#开启秘钥验证
PubkeyAuthentication yes
#默认key路径(第二步操作就是为了这一步)
AuthorizedKeysFile  .ssh/authorized_keys
#禁用密码登录(也可秘钥和密码同时生效,但一般开了秘钥都会禁用密码登录)
PasswordAuthentication no

编辑完成后,重启sshd

systemctl restart sshd

第四步:连接

通过shell终端远程连接

保存服务器生成的私钥(id_rsa),并导入。

shell终端使用私钥,远程连接服务器,服务器进行公钥匹配,实现免密。

linux服务器之间的远程连接

本地保存私钥,将公钥copy到远端,就可以实现本地到远端免秘钥。

第一种方法:使用ssh-copy-id命令

#通过ssh-copy-id将公钥复制给远端服务器
ssh-copy-id 远端服务器
#如果公钥没有在默认路径需加-i指定公钥路径
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.28.128

第二种方法:手动id_rsa.pub内容

打开id_rsa.pub复制里面的内容,将内容粘贴到远端主机的.ssh/authorized_keys文件中(若不存在authorized_keys文件,需手动创建)

good good study, day day up!

发表评论

textsms
account_circle
email

centos 秘钥登录(免密码登录)
原理很简单,私钥、公钥对匹配实现免密码登录。(登录git仓库时用的就是公钥) 形象点讲一对钥匙(私钥+公钥),私钥对应的(钥匙),公钥对应(锁);当你把公钥(锁)拷贝到指定的主…
扫描二维码继续阅读
2021-10-27