一、前言
我们管理远程主机时,首先要从本地输入远程主机的地址,账号密码登录到远程主机后,才能对远程主机进行操作,为了避免每次都输入账号密码的麻烦,我们可以配置本地主机和远程主机的信任关系,从而实现免密登录
二、配置信任连接
如下图所示,通过client管理远程主机中的docker01,docker02,docker03,因此需要在client-server中建立一种信任关系
1.在client中生成公私钥
执行如下命令,使用默认配置,直接回车
ssh-keygen -t rsa
说明:-t rsa
指定使用rsa
加密算法,如上执行结果,会在/home/当前用户/.ssh
目录下找到id_rsa(私钥)和id_rsa.pub(公钥)
2. 将公钥Copy到远程主机
在client端,运行命令 ssh-copy-id 用户名@remoteip
,将公钥copy到远程主机,如下
ssh-copy-id ubuntu@192.168.130.129
3. 检查远程主机公钥
在远程主机的/home/当前用户/.ssh
目录下,会多出一个保存公钥字符串的authorized_keys
文件,该文件内容与id_rsa.pub
一致
ubuntu@ubuntu-virtual-machine:~$ ll /home/ubuntu/.ssh
总用量 16
drwx------ 2 ubuntu ubuntu 4096 5月 24 22:57 ./
drwxr-xr-x 22 ubuntu ubuntu 4096 5月 24 22:57 ../
-rw------- 1 ubuntu ubuntu 411 5月 24 22:57 authorized_keys
-rw-r--r-- 1 ubuntu ubuntu 222 5月 24 09:33 known_hosts
三、验证
经过以上配置后,就可在client端不输入密码直接登录远程主机
ubuntu@ubuntu-virtual-machine:~/.ssh$ ssh 192.168.130.129
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-128-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
0 个可升级软件包。
0 个安全更新。
Last login: Sun May 24 10:15:41 2020 from 192.168.130.138
ubuntu@ubuntu-virtual-machine:~$ exit
注销
Connection to 192.168.130.129 closed.