linux两台机器间实现无密远程登录(使用证书)

思路分析:

比如有两台主机,192.168.0.69,192.168.0.70。其中192.68.0.69上安装有ansible,为了使用ansible进行自动化运维,我们需要实现192.168.0.69向其他其他主机的单向ssh免密登录。

(单向ssh免密登录:192.168.0.69主机可以使用ssh免密登录到其他主机上,但其他主机不能使用ssh免密登录到192.168.0.69)

为了实现此功能。

我们需要在192.168.0.69上,生成密钥对(公钥id_rsa.pub,私钥id_rsa),然后将公钥追加到授权文件authorized_keys中

192.168.0.69:

192.168.0.70:

linux两台机器间实现无密远程登录(使用证书)_第1张图片

 

这里有个坑:

authorized_keys 这个文件的权限必须是600(,就算是644 也不行),否则无法由69免密登录到70

 



下面本为正式开始:

linux两台机器间使用无密远程登录(使用证书),以CentOS7为例

默认linux两台机器间使用密码远程登录:

ssh ip或ip映射地址

输入远程机器的密码

linux两台机器间实现无密远程登录(使用证书)_第2张图片

(/root/下默认是没有.ssh文件夹的,在上面使用ssh命令后,将自动生成 /root/.ssh目录)

如何简化,实现不需要密码就能远程登录?下面开始详细讲解:

两台机器的ip:

192.168.55.249

192.168.55.251

 

在249这台机器上执行命令

(1) 生成密钥对:公私钥(id_rsa 是私钥,id_rsa.pub是公钥)

ssh-keygen -t rsa      # 一直回车即可

 

linux两台机器间实现无密远程登录(使用证书)_第3张图片

 

(2) 查看 /root/.ssh/ 下生成情况

cd /root/.ssh
ll -a

linux两台机器间实现无密远程登录(使用证书)_第4张图片

(3) 将公钥追加到授权文件中    

cat id_rsa.pub >> authorized_keys

linux两台机器间实现无密远程登录(使用证书)_第5张图片

(4) 可以查看里面追加的公钥 --- 这一步不想查看可忽略

more authorized_keys

(5) 将 249 中的公钥复制到 251那台机器上

ssh-copy-id -i 192.168.55.251      #若192.168.55.251设置了映射地址,使用映射地址也行,eg: ssh-copy-id -i hadoop2

linux两台机器间实现无密远程登录(使用证书)_第6张图片

(下面可不做)

可在251那台机器上查看一下,authorized_key中的公钥信息,可发现和249那台的一样

linux两台机器间实现无密远程登录(使用证书)_第7张图片

(6) 验证一下

ssh 192.168.55.251

  # 或   ssh hadoop2 (设置该ip的映射地址为hadoop2的话,vi /etc/hosts 进行设置)

 

此时,249已经能无密登录251了。

 

-----------------------------------------------

251若想能无密登录249,只需要在251那台机器上把上面代码执行一遍即可(即生成251那台机器的密钥对,把公钥添加到249那台机器的授权文件中)

251那台机器上:

ssh-keygen -t rsa
cat id_rsa.pub >> authorized_keys
more authorized_keys
ssh-copy-id -i 192.168.55.249
ssh 192.168.55.249

 



遇到的大坑:

配置ssh免密码登录后,仍提示输入密码

解决方法:

首先我们就要去查看系统的日志文件

tail /var/log/secure -n 20

发现问题的所在:Authentication refused: bad ownership or modes for directory /root

<1>再查看不能正常免密登陆的主机的 root目录 权限:drwxrwxrwx.   6 root root  217 Jul 26 10:26 root

<2>而能正常免密登陆的主机的 root目录 权限:drwxr-xr-x.   6 root root 4096 Jul 26 10:28 root

从日志暴露的问题分析:字面上可以看出是目录的属主和权限配置不当,对比<1>、<2>得知:SSH不希望root目录对组有写权限,通过下面命令改下

cd /

chmod 755 root      (此时root目录权限变为:drwxr-xr-x )

然后我们再去登录,就能不用密码进入了。

[root@master /]# ssh master
Last login: Thu Jul 26 12:03:02 2018 from 192.168.0.150
[root@master ~]#

 

 

 

 

 

 

 

你可能感兴趣的:(linux)