目录
背景
在使用上线检测脚本时,需要用到服务器之间相互免密登录的功能。root用户
请参考: SSH远程登录:两台或多台服务器之间免密登录设置,dmdba用户
请参考下文。
1、服务器A免密登录本机
1.1、生成私钥(id_rsa)和公钥(id_rsa.pub)
在服务器A中指定的位置(/home/dmdba/.ssh)生成私钥(id_rsa)和公钥(id_rsa.pub)
javascript
#服务器A,dmdba用户下:
ssh-keygen -t rsa
#部分服务器执行ssh-keygen即可
一路回车键,可看到如下图生成的私钥和公钥,此时服务器A的dmdba
用户私钥已经生成
1.2、追加公钥到服务器A的密码登录权限管理文件
在服务器A中把公钥id_rsa.pub追加到服务器A管理密码登录权限的文件(authorized_keys)中
javascript
cd /home/dmdba/.ssh/
cat id_rsa.pub >> authorized_keys
1.3、结果验证
使用dmdba用户ssh本机ip,即可验证。
javascript
ssh dmdba@192.168.56.200
2、服务器A免密登录服务器B
2.1、确认服务器B有目的文件夹
确认服务器B是否存在目的文件夹/home/dmdba/.ssh/
,如果没有,需要按照1.1、生成私钥(id_rsa)和公钥(id_rsa.pub)
章节操作,目的是为了生成/home/dmdba/.ssh/
文件夹(如果存在跳过本小节)
javascript
#服务器B,dmdba用户下:
ssh-keygen -t rsa
#部分服务器执行ssh-keygen即可
2.2、服务器A的公钥复制到服务器B上
把服务器A的公钥id_rsa.pub复制到服务器B中任意位置(如/tmp下
),常见scp命令如下:
javascript
服务器A中:
scp -r /home/dmdba/.ssh/id_rsa.pub root@192.168.56.209:/tmp
2.3、追加公钥到服务器B的密码登录权限管理文件
把刚才复制过来的公钥id_rsa.pub
追加到服务器B管理密码登录权限的文件(authorized_keys)中
javascript
服务器B中:
cat /tmp/id_rsa.pub >> /home/dmdba/.ssh/authorized_keys
此时,服务器A的公钥(登录服务器B的权限)追加到服务器B中的权限文件authorized_keys中,服务器A可免密登录服务器器B了。
原因:因为此时服务器B的密码登录权限文件authorized_keys中已经有服务器A的公钥,即A获得了B的登录权限。
2.4、结果验证
使用服务器A的dmdba用户
ssh服务器B的dmdba用户
,即可验证
javascript
服务器A中:
ssh dmdba@192.168.56.209
3、服务器B免密登录服务器A
同章节2、服务器A免密登录服务器B