Linux服务器间ssh免密配置:
1、检查实施版本(ssh版本需一致):
ssh -V
sshd -v
2、【A服务器】:
#查看是否存在ssh
cat ~/.ssh/id_rsa.pub
#以下两种方式,执行命令后,一直回车即可(注意: -m PEM可选,加他是为了解决com.jcraft.jsch.JSchException: invalid privatekey)
ssh-keygen -t rsa -m PEM
ssh-keygen -t rsa
#注意A、B服务器生成方式需保持一致
3、【B服务器】:
#检查是否有/app/username/.ssh/authorized_keys
若无此文件,执行
cat id_rsa.pub >> authorized_keys
#若有,则需要在authorized_keys追加A的公钥:直接复制A服务器id_rsa.pub内容至B服务器authorized_keys尾部即可。
#注意以下目录的权限,不同请修改
chmod 755 /app/username
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_rsa
4、测试【A服务器是否可以免密登录B服务器】
ssh username@ip?
scp -p /app/xxx/.ssh/id_rsa.pub user@hostip1:/app/username/test
#?提示:免密配置成功后首次登陆不需要输入密码。
#常见问题解答
配置ssh免密码登录后,仍提示输入密码
解决方法:
首先我们就要去查看系统的日志文件
tail /var/log/secure -n 20
发现问题的所在:Authentication refused: bad ownership or modes for file
从字面上可以看出是目录的属主和权限配置不当:SSH不希望用户家目录和~/.ssh目录对组有写权限,通过下面几条命令改下
chmod 755 /app/username
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_rsa
#注意A、B服务器权限保持一致
然后我们再去登录,就能不用密码进入了。
本文暂时没有评论,来添加一个吧(●'◡'●)