Linux系统配置SSH免密登录(多主机互通)

简介: Linux系统配置SSH免密登录(多主机互通) 本文测试环境: Linux系统镜像:CentOS-7-x86_64-DVD-1804.iso 虚拟机版本:VMware-workstation-full-12.

Linux系统配置SSH免密登录(多主机互通)

本文测试环境:

Linux系统镜像:CentOS-7-x86_64-DVD-1804.iso
虚拟机版本:VMware-workstation-full-12.1.0-3272444

操作成功后的效果:
每台主机可以本机SSH免密登录,也可以与其他主机之间实现SSH免密登录,也就是每台主机都可以一对多SSH免密登录.

现用虚拟机搭建三台主机,IP分别是:
192.168.33.201 master1
192.168.33.202 master2
192.168.33.203 master3

SSH免密登录的原理在这里就不做介绍了,有兴趣的可以自己去网上找资料了解一下,在这里就直接上方法了.

PS:
authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单

方法一:

先选择其中一台主机,在该主机上生成公钥和私钥,再将公钥和私钥上传到其他主机上,具体操作如下:
在这里我就选择master1进行操作以下操作了:
1.登录Linux系统,根据自己实际情况选择登录用户,执行下面代码生成公钥私钥对:

ssh-keygen -t rsa
1
会出现如下提示,一路回车就行

[root@master1 ~]# 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:
df:71:f6:3e:bb:bb:6c:38:91:f4:bc:70:a1:dd:86:a9 root@master1
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|             . . |
|        S   o Ooo|
|         . . Oo*o|
|          . ..=.o|
|            Eo.= |
|              o*B|
+-----------------+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
注意:在程序提示输入passphrase时直接输入回车,表示无证书密码。

2.生成秘钥的默认目录为:~/.ssh,该目录下会生成下面两个文件:

id_rsa

id_rsa.pub

2.实现本地免密登录,将id_rsa.pub中的内容拷贝到authorized_keys

ssh-copy-id localhost
1
~/.ssh目录下会生成一个新的文件:authorized_keys

3.完成上述步骤后就可以本地SSH免密登录了,运行下面代码出现一行登录时间就代表本地SSH免密登录成功

ssh localhost
1
下面是本地SSH免密登录成功的标志:

[root@master1 ~]$ ssh localhost
Last login: Mon Aug 27 08:41:20 2018 from 192.168.33.2
1
2
4.如果本机能成功SSH免密登录,
先退出SSH登录:

exit
1
再执行以下代码将本机的~/.ssh文件夹复制到其他主机上:

scp -r ~/.ssh 192.168.33.202:~/
1
scp -r ~/.ssh 192.168.33.203:~/
1
提示输入密码时,输入远程主机密码回车即可

5.测试SSH免密登录,这里就不发测试了,大家自行测试

方法二:

将每台机器生成的id_rsa.pub追加添加到同一个authorized_keys内,然后再将该authorized_keys发送到其他远程主机上.

具体步骤如下:
1.在master1,master2,master3上分别执行:

ssh-keygen -t rsa
1
与"方法一"内所述一样,一路回车即可,生成秘钥的默认目录为~/.ssh
2.接着制作包含master1,master2,master3中所有id_rsa.pub的authorized_keys文件:
此处在master 1上生成authorized_keys文件,
在master1上执行:

ssh-copy-id -i 192.168.33.201
1
在master2上执行:

ssh-copy-id -i 192.168.33.201
1
在master3上执行:

ssh-copy-id -i 192.168.33.201
1
注意:此处代码中的"-i"千万不要忘记了!!!

3.通过scp将master1上生成的authorized_keys文件发送给其他主机:
在master1上执行

scp -r ~/.ssh/authorized_keys 192.168.33.202:~/.ssh
1
scp -r ~/.ssh/authorized_keys 192.168.33.203:~/.ssh
1
提示输入密码时,输入远程主机密码回车即可

5.测试SSH免密登录,可先测试本机免密登录,再测试远程主机远程登录
本机登录可用:

ssh localhost
1
远程登录将localhost换成远程主机IP即可
比如在master1上登录master2,就在master1上执行:

ssh 192.168.33.202
1
相关故障处理:
部分人在配置完成后可能出现无法登录的情况,错误代码我不太记得了,欢迎各位读者在下面补充.
造成故障的原因是之前配置过程中配置失败,然后重新对SSH免密登录进行配置,配置完成后无法正常登录,解决方法如下:

删除各主机下~/.ssh目录中的known_hosts文件:

rm -rf ~/.ssh/known_hosts
--------------------- 
作者:PengShuaixin 
来源:CSDN 

相关文章
|
6月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
399 146
|
10月前
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
478 14
|
9月前
|
监控 Linux 网络安全
FinalShell SSH工具下载,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux
FinalShell是一款国人开发的多平台SSH客户端工具,支持Windows、Mac OS X和Linux系统。它提供一体化服务器管理功能,支持shell和sftp同屏显示,命令自动提示,操作便捷。软件还具备加速功能,提升访问服务器速度,适合普通用户和专业人士使用。
2882 0
|
11月前
|
Ubuntu Linux 网络安全
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
558 24
|
10月前
|
安全 网络协议 Linux
Linux查 ssh端口号和服务状态
本指南详细介绍如何检查SSH服务的运行状态,包括通过进程命令验证服务启动、查看监听端口、检测系统服务状态以及防火墙配置。同时提供安全建议,如修改默认端口、禁用密码登录和定期更新系统,确保SSH服务稳定与安全。适用于不同Linux发行版(Systemd/SysVinit),帮助用户全面排查和优化SSH配置。
|
12月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
496 10
|
安全 网络安全 数据安全/隐私保护
Debian 12系统中允许Root远程SSH登录解决方法!
在 Debian 12 系统中开启 SSH 远程 Root 登录需修改 SSH 配置文件 (`sshd_config`),将 `PermitRootLogin` 设置为 `yes` 并确保密码认证启用。完成后重启 SSH 服务并验证连接。若防火墙启用,需放行端口 22。注意,直接开放 Root 登录可能带来安全风险,建议使用普通用户登录后切换至 Root。
1850 1
|
监控 Ubuntu 安全
debian或Ubuntu中开启ssh允许root远程ssh登录的方法
在Debian或Ubuntu系统中启用root用户的SSH远程登录需要编辑SSH配置文件、设置root密码并重启SSH服务。虽然这可以在某些情况下提供便利,但必须注意安全性,通过使用强密码、限制IP访问、使用SSH密钥认证等方法来保护服务器的安全。
6867 5
|
安全 Linux Shell
Linux SSH(Secure Shell)服务
Linux SSH提供安全网络协议,使用公钥加密技术确保远程服务传输安全。OpenSSH是实现SSH服务的免费开源工具,允许用户加密连接远程登录Linux服务器执行任务。SSH比Telnet更安全,防止数据被截获。SSH还支持端口转发和隧道,广泛应用于系统管理和网络维护,是安全远程访问服务器的重要工具。
254 1
|
监控 数据可视化 安全
Linux——怎样使用SSH服务实现远程UI界面本地显示
需求场景 最近几天需要实现软件的远程监控,但是实际场景又不能使用向日葵、VNC、AnyDesk、以及其他的监视软件,并且软件的整体设计也没有这块的数据上行设计。
1415 0