免密是通过密钥和公钥实现的,公钥是锁,密钥是钥匙。
生成
通过命令ssh-keygen -t rsa
生成之后会在用户的根目录生成一个 .ssh
的文件夹,进入.ssh
会生成以下几个文件:
- authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
- id_rsa : 生成的私钥文件
- id_rsa.pub : 生成的公钥文件
- know_hosts : 已知的主机公钥清单
添加公钥
实现方式:将本机的公钥放到被访机的authorized_keys中。
- 通过ssh-copy-id的方式
命令:ssh-copy-id -i ~/.ssh/id_rsa.pub [-p port][username@]<serverip>
- 通过scp将内容写到对方的文件中
命令:scp -p ~/.ssh/id_rsa.pub root@:/root/.ssh/authorized_keys
注意事项
如果希望ssh公钥生效需满足至少下面两个条件:
- .ssh目录的权限必须是700
- .ssh/authorized_keys文件权限必须是600
点到即止