需求
- 有两个主机
h1
和h2
–h1
上的用户是user1
,IP是192.168.1.11
–h2
的用户user2
,IP是192.168.1.22
- 需要在
h1
上通过ssh user2@h2
指令ssh到h2
的user2
,且不需要输入密码;
同理在h2
上通过ssh user1@h1
指令ssh到h1
的user1
分两步
1. 通过主机名解析IP
在h1
, h2
的 /etc/hosts
文件中都添加如下内容:
192.168.1.11 h1
192.168.1.22 h2
这时候h1
,h2
上已经可以 互相通过 ssh user2@h2
来登录对方了,只是还需要输入密码
2. 配置ssh免秘钥
2.1. 分别安装ssh
sudo apt-get install openssh-server
2.2 生成公钥和私钥
此步骤 h1, h2 都需要执行
ssh-keygen -t rsa
一路敲回车
cd ~/.ssh
就会发现多了如下文件:
id_rsa
和id_rsa.pub
分别是私钥、公钥文件
2.3 主机 h2 向 h1 发送公钥
在h2
上执行以下指令
scp .ssh/id_rsa.pub user1@h1:~
将h2的id_rsa.pub文件复制到 h1 上
2.4 主机 h1 汇总公钥,并拷贝给 h2
在h1
上执行以下指令
cat ~/.ssh/id_rsa.pub >> /.ssh/authorized_keys # h1自己的公钥
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys # h2的公钥
scp ~/.ssh/authorized_keys user2@h2:~/.ssh/authorized_keys # 汇总后的公钥发给h2
2.5 重启 ssh 服务
sudo service ssh restart