主要原理
- 在A上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)。
- 把公钥放到B的(~/.ssh/authorized_keys)文件中, 自己保留好私钥.
- 在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了。
步骤
假设 服务器A 要免密登录 服务器B
在服务器A上:
ssh-keygen -t rsa -P ""
1. 直接回车生成密钥对:id_rsa和id_rsa.pub
2. 把id_rsa.pub追加到授权的key里面去(.ssh/authorized_keys)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3. 修改authorized_keys的权限为600(-rw-------)
chmod 600 ~/.ssh/authorized_keys
4. 修改ssh配置文件,去掉如图中的三行注释(约第48行)
vim /etc/ssh/sshd_config
5. 重启ssh服务,测试链接
service sshd restart
A机器上密钥对已做好,且ssh也配置好.现在把公钥发送给服务器B
scp ~/.ssh/id_rsa.pub root@服务器B的ip:~/ #把id_rsa.pub发送到B的/root目录下
在服务器B上:
1. 登录B, 把发送过来的id_rsa.pub追加到authorized_keys 上(注意chmod 700 .ssh权限)
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys #追加公钥到授权key中
rm ~/id_rsa.pub #保险起见,删除公钥
2. 修改authorized_keys的权限为600(-rw-------)
chmod 600 ~/.ssh/authorized_keys
3. 修改ssh配置文件,去掉如图中的三行注释(约第48行)
vim /etc/ssh/sshd_config
4. 重启ssh服务,测试链接
service sshd restart
回到A上 , ssh B的ip 应该可以了