设置SSH免密码登录
在linux中进行各个系统之间进行ssh通信时,必须知道对方的账户密码,才能进行相应的操作。
思路:通过RSA加密算生成了密钥,包括私钥和公钥,我们把公钥追加到用来认证授权的key中去。
假设有A、B两台服务器
生成密钥
在A服务器生成密钥
1.生成rsa密钥,将所有要免密的主机都生成密钥(已生成的可以跳过)
ssh-keygen -t rsa
三个设置,可以直接回车默认
enter file in which to save the key (/root/.ssh/id_rsa): 输入保存密钥的文件,默认是登陆用户的home目录
enter passphrase (empty for no passphrase): 输入密码短语(没有密码短语为空)
enter same passphrase again: 再次输入相同的密码短语:
2.进入.ssh目录
cd ~/.ssh/
发送授权文件
1.把公钥文件放入授权文件中
cat id_rsa.pub >> authorized_keys
2.发送授权文件到B服务器
scp ~/.ssh/authorized_keys username@ip:~/.ssh/
username:B服务器内的用户名
ip:B服务器的ip地址
未进行任何的ssh操作之前,home目录下没有.ssh目录,执行这一步时会报错
可以去B服务器手动创建.ssh目录,权限为700
执行完上诉操作即可实现A服务器免密登陆B服务器
若想让B服务器免密登陆A服务器,则需要在B服务器生成密钥,将公钥发送到A服务器。
注意:
1.如果设置好后无法免密登陆,检查如下两个权限
.ssh权限为700
authorized_keys权限为644
2.如果A、B服务器有多个账户,使用其它账户并不能免密登陆