多台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 生成密钥

[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

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

例: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"

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

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

三、故障处理

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

[root@kt02 .ssh]# ssh-copy-id -i  id_rsa.pub "-p 22
root@192.168.4.244"
-bash: ssh-copy-id: command not found

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

[root@kt02 .ssh]# cat ~/.ssh/id_*.pub | ssh  root@192.168.4.244 'cat > .ssh/authorized_keys'

四、登录SSH

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

[root@kt02 .ssh]# ssh root@192.168.4.244

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

[root@jw02 .ssh]# ssh ken@223.73.125.198 -p 511190

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



本文转自 kuangling 51CTO博客,原文链接:http://blog.51cto.com/kling/1132800

相关文章
|
1月前
|
存储 数据挖掘 Windows
服务器数据恢复—V7000存储raid5故障导致LUN无法访问的数据恢复案例
服务器数据恢复环境: 三台V7000存储,共有64块SAS硬盘(其中有三块热备盘,其中一块已启用)组建了数组raid5阵列。分配若干LUN,上层安装Windows server操作系统,数据分区格式化为NTFS文件系统。 服务器故障: V7000存储中有多块硬盘出现故障离线,阵列失效,LUN无法访问。需要恢复卷中所有数据(主要为dcm文件)。
|
11天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
1月前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
27 2
|
1月前
|
前端开发 Java
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
文章介绍了如何使用SpringBoot创建简单的后端服务器来处理HTTP请求,包括建立连接、编写Controller处理请求,并返回响应给前端或网址。
53 0
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
|
1月前
|
Apache 数据中心 Windows
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
|
1月前
|
域名解析 缓存 网络协议
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
|
2月前
|
人工智能 网络协议 Shell
内网穿透实现公网访问自己搭建的Ollma架构的AI服务器
内网穿透实现公网访问自己搭建的Ollma架构的AI服务器
|
2月前
|
人工智能 网络协议 Shell
内网穿透实现公网访问自己搭建的Ollma架构的AI服务器
内网穿透实现公网访问自己搭建的Ollma架构的AI服务器
内网穿透实现公网访问自己搭建的Ollma架构的AI服务器
|
1月前
|
网络安全 Docker 容器
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
25 0
|
1月前
|
弹性计算 关系型数据库 网络安全
阿里云国际版无法连接和访问Windows服务器中的FTP服务
阿里云国际版无法连接和访问Windows服务器中的FTP服务