摘要
目前局域网中参与配置的有三台机器,要配置这三台机器免密登录。
配置主机名
配置主机名其实相当于在这三台机器上各自备份一个路由表,由IP到主机名之间的映射。
下面以 177.11.12.115
为例,修改主机名:
1 | vi /etc/hostname |
将其中的内容修改为:
1 | oolong116 |
然后增加映射:
1 | vi /etc/hosts |
在文件末尾添加以下内容:
1 | 177.11.12.113 oolong113 |
别忘了重启一下电脑,不然hostname不会生效
1 | reboot |
测试:
1 | [root@localhost local]# ping oolong115 |
这时,我们已经可以使用主机名 oolong115
来代替IP 177.11.12.115
。
同样的方法对另外两台机器设置,这样三台机器之间就可以通过主机名互相访问了。
生成密钥
使用命令 ssh-keygen
生成密钥,在生成过程中会要求输入存放目录等内容,可以不输入,回车即可。
1 | [root@oolong113 ~]# ssh-keygen |
进入目录 /root/.ssh/
可以看到生成以下的两个文件:
1 | -rw-------. 1 root root 1679 Sep 12 19:37 id_rsa |
如法炮制,给另外两台机器也生成密钥。
拷贝秘钥
这里需要注意,要使用SSH的命令来拷贝秘钥,因为里面不能有其他字符,如果是通过文件编辑工具打开拷贝,可能会产生多余的换行符等内容,可能产生的问题是A能免密登录B,但B不能免密登录A。
比如当前在 oolong116
这台机器上,进入 /root/.ssh/
目录,执行下面命令,将秘钥拷贝到 113 上:
1 | ssh-copy-id -i id_rsa.pub root@oolong113 |
拷贝后检查 113 的 /root/.ssh
目录下有没有 authorized_keys
文件。
依次的拷贝到其他机器上,同样的将其他机器上的秘钥要拷贝到176 上
测试
1 | [root@oolong116 .ssh]# ssh oolong115 |
此时,就登录上了 115 了。
批量拷贝秘钥到远程主机
安装 sshpass
1 | yum install sshpass |
编写脚本
进入秘钥所在目录 /root/.ssh
,创建以下两个文件:
remote-hosts
1 | weilu131 |
copyscript.sh
1 | for host in $(cat remote-hosts) |
其中参数 -p '1234'
表示密码,这里几台机器使用的相同密码,根据情况修改。
保存后需要修改拷贝脚本的权限:
1 | chmod 777 copyscript.sh |
然后执行拷贝:
1 | ./copyscript.sh |
v1.5.2