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 

相关文章
|
16天前
|
监控 Ubuntu 安全
debian或Ubuntu中开启ssh允许root远程ssh登录的方法
在Debian或Ubuntu系统中启用root用户的SSH远程登录需要编辑SSH配置文件、设置root密码并重启SSH服务。虽然这可以在某些情况下提供便利,但必须注意安全性,通过使用强密码、限制IP访问、使用SSH密钥认证等方法来保护服务器的安全。
154 5
|
4月前
|
安全 Linux 网络安全
Linux端的ssh如何升级?
Linux端的ssh如何升级?
432 59
|
2月前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
3月前
|
大数据 网络安全 数据安全/隐私保护
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(二)
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(二)
179 5
|
3月前
|
XML 大数据 网络安全
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(一)
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(一)
83 4
|
5月前
|
安全 Shell Linux
如何禁止某个用户使用ssh登录
本文介绍了五种禁止用户通过SSH登录的方法:1) 修改`/etc/ssh/sshd_config`文件中的`DenyUsers`和`DenyGroups`来阻止特定用户或用户组登录;2) 将用户的默认shell设置为`/usr/sbin/nologin`或`/bin/false`以禁用其SSH访问;3) 利用PAM(可插入认证模块)通过编辑`/etc/security/sshd.conf`来限制登录权限;4) 通过编辑`/etc/hosts.deny`文件拒绝特定用户的SSH访问;5) 锁定或禁用用户账号以阻止所有类型的登录。每种方法都提供了详细的步骤指导。
766 1
|
5月前
|
Linux 网络安全
Linux开启ssh
Linux开启ssh
52 0
|
8月前
|
安全 Linux Shell
Linux SSH(Secure Shell)服务
Linux SSH提供安全网络协议,使用公钥加密技术确保远程服务传输安全。OpenSSH是实现SSH服务的免费开源工具,允许用户加密连接远程登录Linux服务器执行任务。SSH比Telnet更安全,防止数据被截获。SSH还支持端口转发和隧道,广泛应用于系统管理和网络维护,是安全远程访问服务器的重要工具。
100 1
|
监控 数据可视化 安全
Linux——怎样使用SSH服务实现远程UI界面本地显示
需求场景 最近几天需要实现软件的远程监控,但是实际场景又不能使用向日葵、VNC、AnyDesk、以及其他的监视软件,并且软件的整体设计也没有这块的数据上行设计。
589 0
|
5月前
|
监控 安全 Ubuntu
在Linux中,如何进行SSH服务配置?
在Linux中,如何进行SSH服务配置?