1. 前提

有阿里云服务器A(192.168.1.177)、服务器B(192.168.1.180)组成内网,现需要配置服务器A可以免密ssh连接服务器B

2. 获取密钥对

直接在阿里云控制台创建密钥对,并绑定到服务器B上。

3. 配置服务器A

从后台下载密钥对的私钥文件(.pem后缀),并上传到服务器A的 /root/.ssh目录下

4. 进入服务器A,修改私钥文件名为 id_rsa

cd ~/.ssh
mv guoke.pem id_rsa

5. 修改私钥文件权限

chmod 600 id_rsa

6. 直接ssh连接服务器B

[root@iZbp10ebr6tsvhae7nwfmvZ .ssh]# ssh 192.168.1.180
The authenticity of host '192.168.1.180 (192.168.1.180)' can't be established.
ECDSA key fingerprint is SHA256:hesen9D/4OD39Ehp10nZ60StoV5NTavQ3WHUQNdu94g.
ECDSA key fingerprint is MD5:32:3e:2d:75:1c:c0:0c:11:97:82:28:25:a0:1b:dc:0c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.180' (ECDSA) to the list of known hosts.
Last login: Thu Dec 26 23:47:27 2019 from 119.32.73.182

Welcome to Alibaba Cloud Elastic Compute Service !

[root@guoke ~]# 

第一次登录需要输入yes确认,之后可以直接连了。

7. 扩展

  • 注意id_rsa文件需要修改权限,不然连接时会报‘bad permissions’错误
  • 如果存在一个内网服务器组,将所有服务器都绑定同一个密钥对,然后把所有服务器都安上述方法添加私钥,这样服务器组中所有服务器之间的访问都是免密的。
  • ssh免密之后,基于ssh的所有协议(如:scp)都将免密