关注上方 浩道Linux ,回复 资料 ,即可获取海量 L inux 、 Python 、 网络通信、网络安全 等学习资料!
前言
大家好,这里是 浩道Linux ,主要给大家分享 L inux 、 P ython 、 网络通信、网络安全等 相关的IT知识平台。
今天浩道跟大家分享一下公司实习生近来的成长情况。本月在对实习生进行半年考核时,在向实习生咨询ssh登录互信配置时,他竟然表示没有使用过,更不懂其使用的场景。这有点让我意外,毕竟实习生平时接触服务器也不少。本文就针对这个知识点给大家来一次ssh登录互信配置实操,让大家都掌握这个技能,一起看看吧!
一、ssh登录互信使用场景
Linux主机互信配置的使用场景在集群环境中应用非常广泛,可以在各种需要多台主机之间进行安全通信和数据交换的场景中应用。
1、自动化运维任务: 在自动化运维任务中,经常需要通过SSH连接到多台主机并执行命令或脚本。配置双向互信可以使运维工程师在执行任务时免去重复输入密码的步骤,提高工作效率。
2、远程登录和管理: 当需要在多台主机之间进行远程登录和管理时,配置互信关系可以方便地实现无需输入密码即可登录对方主机的需求,提高了管理效率。
3、文件传输和同步: 通过配置互信关系,可以在多台主机之间安全地传输和同步文件,保证数据的安全性和完整性。
4、网络服务和应用部署: 在网络服务和应用部署中,经常需要在多台主机之间进行配置和协调。配置互信关系可以方便地实现主机之间的安全通信和数据交换。
5、容器和虚拟化技术: 在容器和虚拟化技术的使用中,经常需要在宿主机和虚拟机之间进行通信和管理。配置互信关系可以提供安全可靠的通信通道,保证数据的安全性和隐私性。
二、ssh登录互信配置原理
Linux主机互信配置的原理主要是通过公钥认证来实现的。公钥认证是一种基于RSA算法的安全认证方式,它使用一对密钥来进行加密和解密。其中,公钥用于加密数据,而私钥用于解密数据。
在Linux主机互信配置中,两台主机之间会交换公钥,并保存在对方的信任存储中。当其中一台主机向另一台主机发送数据时,它可以使用对方的公钥对数据进行加密,然后发送给对方。对方接收到数据后,使用自己的私钥进行解密,从而获取原始数据。
这种认证方式的好处在于,不需要每次都在输入密码进行验证,只要双方都信任对方,就可以直接进行通信。这种方式大大简化了多台机器之间切换登陆的操作,提高了工作效率。
为了实现Linux主机互信配置,需要遵循以下步骤:
1、在每台需要配置互信的主机上生成一对公钥和私钥。
2、 将其中一台主机的公钥复制到另一台主机的信任存储中。
3、通过SSH登录服务器,验证SSH登录互信是否配置成功。
通过以上步骤,两台Linux主机就可以建立互信关系,实现无需输入密码即可直接登录对方主机的目标。以下为简单配置原理拓扑图:
三、ssh互信配置实现及验证
(一)配置环境
两台主机分别是haodaolinux01的ip是192.168.20.231,haodaolinux02的ip是192.168.20.232
(二)配置步骤
1、在服务器1上生成公钥及私钥对
执行如下命令完成操作即可, 提示输入信息时直接回车,如下所示:
[root@haodaolinux01 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
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:
SHA256:qhWqG7kkY2/YrMUxetlxBktvx+B8N42Sh1j3usV8lco root@haodaolinux01
The key's randomart image is:
+---[RSA 2048]----+
| |
| |
| o . . . |
| . * = + + .|
| o o.OSB = o ..|
| o.=.=oo + * . .|
|ooB=..o . E . |
|.=+B o o . |
| .*o. . |
+----[SHA256]-----+
[root@haodaolinux01 ~]#
完成以上操作后,即在服务器1上生成公钥及私钥文件了。
生成ssh的公钥及秘钥将默认存储在家目录下的.ssh/目录下。如下所示:
[root@haodaolinux01 ~]# cd .ssh/
[root@haodaolinux01 .ssh]# ll
总用量 8
-rw-------. 1 root root 16752月 200:44 id_rsa
-rw-r--r--. 1 root root 4002月 200:44 id_rsa.pub
其中公钥文件 id_rsa.pub 的权限为644,私钥文件 id_rsa 的权限为600,同时 .ssh 目录权限是700。
2 、在服务器2上生成公钥及私钥对
执行如下命令完成操作即可, 提示输入信息时直接回车,如下所示:
[root@haodaolinux02 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
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:
SHA256:7oteuYB6biFIbcwW3LqrHgRlcMJQ7UxoluB3Fn9IGN4 root@haodaolinux02
The key's randomart image is:
+---[RSA 2048]----+
|B+*+.oo. |
|.*=o+o= . |
|.++=o+ E . |
|...B= . |
|.oo . S |
|o .... . . |
| . .o.. + |
| .oo = . |
|.oo+..o +. |
+----[SHA256]-----+
[root@haodaolinux02 ~]#
完成以上操作后,即在服务器2上生成公钥及私钥文件了。
生成ssh的公钥及秘钥将默认存储在家目录下的.ssh/目录下。如下所示:
[root@haodaolinux02 ~]# cd .ssh/
[root@haodaolinux02 .ssh]# ll
总用量 8
-rw-------. 1 root root 16752月 200:45 id_rsa
-rw-r--r--. 1 root root 4002月 200:45 id_rsa.pub
[root@haodaolinux02 .ssh]#
其中公钥文件 id_rsa.pub 的权限为644,私钥文件 id_rsa 的权限为600,同时 .ssh 目录权限是700。
3、在服务器1上将自己的公钥文件发送给服务器2
以下通过 ssh-copy-id命令完成。ssh-copy-id命令会将本地的公钥文件复制到远程主机的用户主目录下的.ssh文件夹中,并重命名成authorized_keys文件。同时,ssh-copy-id命令还会设置适当的文件权限,以确保远程主机只能由具有对应私钥的用户访问。
[root@haodaolinux01 .ssh]# ssh-copy-id 192.168.20.232
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.20.232 (192.168.20.232)' can't be established.
ECDSA key fingerprint is SHA256:4iwLqnweCyu1vfr/NnjXzqWc6bq/NELno+uOmdiITlQ.
ECDSA key fingerprint is MD5:89:10:36:9b:4e:1b:28:99:a2:84:3f:65:a7:c6:17:94.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the newkey(s), to filter outany that are already installed
/usr/bin/ssh-copy-id: INFO: 1key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.20.232's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '192.168.20.232'"
and check to make sure that only the key(s) you wanted were added.
[root@haodaolinux01 .ssh]#
4 、在服务器2上将自己的公钥文件发送给服务器1
同上步骤, 以下通过 ssh-copy-id命令完成。
[root@haodaolinux02 .ssh]# ssh-copy-id 192.168.20.231
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.20.231 (192.168.20.231)' can't be established.
ECDSA key fingerprint is SHA256:4iwLqnweCyu1vfr/NnjXzqWc6bq/NELno+uOmdiITlQ.
ECDSA key fingerprint is MD5:89:10:36:9b:4e:1b:28:99:a2:84:3f:65:a7:c6:17:94.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the newkey(s), to filter outany that are already installed
/usr/bin/ssh-copy-id: INFO: 1key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.20.231's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '192.168.20.231'"
and check to make sure that only the key(s) you wanted were added.
[root@haodaolinux02 .ssh]#
5、在服务器1及服务器2上查看公钥文件复制情况,如上述一样。
服务器1上如下所示:
[root@haodaolinux01 .ssh]# pwd
/root/.ssh
[root@haodaolinux01 .ssh]# ll
总用量 16
-rw-------. 1 root root 4002月 201:08 authorized_keys
-rw-------. 1 root root 16752月 200:44 id_rsa
-rw-r--r--. 1 root root 4002月 200:44 id_rsa.pub
-rw-r--r--. 1 root root 1762月 201:05 known_hosts
[root@haodaolinux01 .ssh]# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFP0aUD/ki8Q2dTarE7txT00VVVPawxyojM76XlSVpoaJuhBRhfIcIs2DUc2SYChnnC89WqtI5ygqY5ig2M1TUMwe7N4GHB401+U2cDn6Op48TqJHEmbk5BYKT0+dj39c5My+l6F6mgtcOANzddqqXre6/I8kAbFWTEDAtAn6ynw+BWH1FhTusTnX6vjU6ErQj9VCYXBCT+4tm9gWhvMtY0ywV1Af0HToVVUtZLmV8m1nbhPl9/WZVj1LML12WRUQxoTRn9SVjPJj5FBai7k42MhSwMauiceGCQF9BDuQ+gWeEaOpVXCdG+9O86st0sg6vg5P1dGIyEmhGtyCe0tPN root@haodaolinux02
[root@haodaolinux01 .ssh]#
服务器2上如下所示:
[root@haodaolinux02 .ssh]# pwd
/root/.ssh
[root@haodaolinux02 .ssh]# ll
总用量 16
-rw-------. 1 root root 4002月 201:06 authorized_keys
-rw-------. 1 root root 16752月 200:45 id_rsa
-rw-r--r--. 1 root root 4002月 200:45 id_rsa.pub
-rw-r--r--. 1 root root 1762月 201:07 known_hosts
[root@haodaolinux02 .ssh]# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNq5mGx/Z0pfgZk0HOxbO6iqBJEW4ZinZHM2nxJ1xQHiU/ldufW2NCpgd3HXfAKOa28uz3y5NLE4m4/lhY4XC5oSWJ4eiqxpJUdacu65u9i+RafyAXFprsCh5ortzGwPRn7DSEBMk7XQNg5+JHcMG53xloWgZOFPVYPJjlK1SexwhSmmGKZL/vCvMfyNDn8d8idyM4z5woRU8Qk2WL1F3JCNoNjnAttpntI7g2dGUnJwkjMS7GYvHSb9fyCMg8fZyIKYFetS5uKyGNVQ3Z5esP95hukSJBi5rt3acwh1ADexMryhuWKKCFbrQmptQem+WSH6KpT3afI/WRtKwaQ18F root@haodaolinux01
[root@haodaolinux02 .ssh]#
(三)验证ssh登录互信配置成功与否
完成上述配置后,即可分别在服务器1和服务器2上通过ssh协议登录对方。
服务器1上登录服务器2,如下所示,无需密码即可登录。
[root@haodaolinux01 .ssh]# ssh 192.168.20.232
Lastlogin: FriFeb 2 00:14:10 2024 from 192.168.20.122
[root@haodaolinux02 ~]#
服务器2上登录服务器1 ,如下所示,无需密码即可登录。
[root@haodaolinux02 .ssh]# ssh 192.168.20.231
Lastlogin: FriFeb 2 00:14:09 2024 from 192.168.20.122
[root@haodaolinux01 ~]#
由此已成功完成ssh登录配置验证。
更多精彩
关注公众号 「 浩道Linux 」
浩道Linux ,专注于 Linux系统 的相关知识、 网络通信 、 网络安全 、 Python相关 知识以及涵盖IT行业相关技能的学习, 理论与实战结合,真正让你在学习工作中真正去用到所学。同时也会分享一些面试经验,助你找到高薪offer,让我们一起去学习,一起去进步,一起去涨薪!期待您的加入~~~ 关注回复「资料」可 免费获取学习资料 (含有电子书籍、视频等)。
喜欢的话,记得 点「赞」 和 「在看」 哦