需求

  • 有两个主机h1h2
    h1 上的用户是user1,IP是 192.168.1.11
    h2 的用户user2,IP是 192.168.1.22
  • 需要在h1上通过 ssh user2@h2 指令ssh到h2user2,且不需要输入密码;
    同理在h2上通过 ssh user1@h1 指令ssh到h1user1


分两步


1. 通过主机名解析IP

h1, h2/etc/hosts文件中都添加如下内容:

192.168.1.11		h1
192.168.1.22		h2

这时候h1h2上已经可以 互相通过 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_rsaid_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