大家都知道ssh命令用于远程登录上linux主机,但是每次都需要输密码,很麻烦,有没有什么办法是可以不用输密码就登录的呢?也就是怎么实现免密登录,下面分享个之前配置免密登录的例子。
下面我们就以两台服务器Server1和Server2为例配置一下。
假设你已经登录Server1,想从Server1跳到Server2。
配置步骤:
1.生成密钥
在Server1输入:ssh-keygen (三次提示都按回车即可) --生成密钥
生成之后会在用户的根目录生成一个 “.ssh”的文件夹,进入“.ssh”会生成如下几个文件:
authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单
ps:ssh公钥生效需满足至少下面两个条件:
.ssh目录的权限必须是700
.ssh/authorized_keys文件权限必须是600
2.将密钥拷贝到要配置的服务器上,写到对方的authorized_keys文件
可以通过如下命令ssh-copy-id <remote_ip> 或者ssh-copy-id -i ~/.ssh/id_rsa.pub <remote_ip>
,输入server2的密码生效
比如
ssh-copy-id root@192.168.91.135
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.91.135
另外还通过scp将内容写到对方的authorized_keys文件中
比如 scp -p ~/.ssh/id_rsa.pub root@<remote_ip>:/root/.ssh/authorized_keys
3.配置完成,在Server1输入:ssh Server2的ip ,即可完成免密登录。
比如:ssh root@192.168.91.135
参考: