多台Linux服务器SSH相互访问无需密码--转

一、环境配置

1、系统:CentOS release 5.6   IP:192.168.4.200   主机名:JW01

2、系统:CentOS release 5.9   IP:192.168.4.244   主机名:JW02

3、系统:CentOS release 5.3   IP:192.168.4.232   主机名:KT01

4、系统:Red Hat  release 4   IP:192.168.4.201   主机名:KT02

二、服务器配置

1、在每台服务器上都执行ssh-keygen -t rsa 生成密钥

<table style="width: 95%;" border="0" cellspacing="0" cellpadding="6" align="center"><tr>
<td bgcolor="#fdfddf">

[root@jw01 .ssh]# ssh-keygen -t rsa[root@jw02 .ssh]# ssh-keygen -r rsa[root@kt01  .ssh]# ssh-keygen -t rsa[root@kt02  .ssh]# ssh-keygen -t rsa

Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): #回车代表无需密码登陆Enter passphrase (empty for no passphrase): #回车Enter same passphrase again: #回车Your identification has been saved in /root/.ssh/id_rsa. #代表私钥Your public key has been saved in /root/.ssh/id_rsa.pub. #代表公钥The key fingerprint is:04:45:0b:47:10:92:0c:b2:b9:d7:11:5b:49:05:e4:d9 root@jw01

</td>

</tr></table>

2、在每台服务器上将公钥复制到无需登录的服务器上,如192.168.4.200 /244/232/2014台做相互无需密码登录,在每台服务器生成密钥后,在每一台服务器上执行ssh-copy-id的命令;以192.168.4.200为例;其他三台服务器也是同样的操作;

<table style="width: 95%;" border="0" cellspacing="0" cellpadding="6" align="center"><tr>
<td bgcolor="#fdfddf">

例:192.168.4.200[root@jw01 ~]# cd ~/.ssh[root@jw01 .ssh]# ssh-copy-id -i  id_rsa.pub "-p 22 root@192.168.4.244"[root@jw01 .ssh]# ssh-copy-id -i  id_rsa.pub "-p 22 root@192.168.4.232"[root@jw01 .ssh]# ssh-copy-id -i  id_rsa.pub "-p 22 root@192.168.4.201"

 password:              #输入密码Now try logging into the machine,with "ssh '-p 22 root@192.168.4.244'",and check in: .ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting.以上信息出现就代表复制成功!

</td>

</tr></table>

以上,可以自动将公钥添加到authorized_keys的文件中,在每台服务器都执行完以上的步骤就可以实现多台服务器无需密码相互访问了。

三、故障处理

1、如果ssh-copy-id 函数在远程服务器不存在;如下

<table style="width: 95%;" border="0" cellspacing="0" cellpadding="6" align="center"><tr>
<td bgcolor="#fdfddf">[root@kt02 .ssh]# ssh-copy-id -i  id_rsa.pub "-p 22</td>

</tr></table>
<table style="width: 95%;" border="0" cellspacing="0" cellpadding="6" align="center"><tr>
<td bgcolor="#fdfddf">
<a href="mailto:root@192.168.4.244">root@192.168.4.244"-bash: ssh-copy-id: command not found
</td>

</tr></table>

     可以尝试用一下命令解决,直接复制本地的pubkey内容到远程服务器;

<table style="width: 95%;" border="0" cellspacing="0" cellpadding="6" align="center"><tr>
<td bgcolor="#fdfddf">
[root<span style="color: #ff0000;">@kt02 .ssh]# cat ~/.ssh/id_*.pub | ssh  <span style="color: #ff0000;"><a href="mailto:root@192.168.4.244">root@192.168.4.244<span style="color: #ff0000;"> 'cat > .ssh/authorized_keys'
</td>

</tr></table>

四、登录SSH

1、登录远程服务器就不需要密码:

<table style="width: 95%;" border="0" cellspacing="0" cellpadding="6" align="center"><tr>
<td bgcolor="#fdfddf">
[root@kt02 .ssh]# ssh <a href="mailto:root@192.168.4.244">root@192.168.4.244
</td>

</tr></table>

2、登录远程服务器有端口的需要添加端口-P

<table style="width: 95%;" border="0" cellspacing="0" cellpadding="6" align="center"><tr>
<td bgcolor="#fdfddf">
[root@jw02 .ssh]# ssh <a href="mailto:ken@242.173.115.98">ken@223.73.125.198 -p 511190
</td>

</tr></table>

3、你依然被要求输入远程服务器密码,那说明你的用户在远程服务器上面没有足够的权限;请查看一下你的远程登录的用户以及authorized_keys文件在哪个用户的目录下。

本文出自 “” 博客,请务必保留此出处

相关文章

背景:我已经有一个ssh公钥和私钥了,绑定的是公司的码云但是...
在服务器程序的部署运维过程中,我们经常需要将文件从一个服...
#!/bin/bash#创建一个以.sc结尾的文件,把要操作的主机按顺序...
打开终端安装openssh-server软件包:sudoaptupdatesudoaptins...
环境centos7.9,.NET5一、Jenkins搭建1)下载Jenkins的war包...
dropbear下载地址:https://matt.ucc.asn.au/dropbearelease...