linux互信文件,Linux 下实现SSH互信

本文介绍如何在多台Linux服务器之间配置SSH互信,通过公钥认证方式实现免密码登录及文件传输,提高自动化运维效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux 下实现SSH互信

今天我们主要介绍一下Linux之间如何实现SSH登录及数据传输互信,所谓互信就是服务器跟服务器之间数据传输或SSH登录不需要输入密码就可以访问,具体不多说了,见下:

我们今天准备使用三台Centos服务器来完成这个实验,主要体现三台服务器:A、B、C服务器之间SSH登录及数据传输不输入密码来完成;

ac687f34a1a2d387ec5ba22e2920437d.png

Hostname:A        IP : 192.168.5.21

Hostname:B        IP: 192.168.5.22

Hostname:C        IP: 192.168.5.23

环境要求:三台服务器使用ssh(SCP)互相访问都不需要输入密码;可以理解为SCP协议就是SSH协议,所以只要SSH之间是互信的,SCP数据传输也就互信了;

我们需要在每台服务器上安装openssh-clientsyum install -y openssh-clients

a249bc84de072ee322d3f54421bd17d1.png

我们在A服务器上执行秘钥文件的注册

ssh-keygen -t rsa 一路全部回车

第一次回车确认是key file 保存路劲

第二次回车确认的

创建目录,认证目录;然后一路回车

112f6ecfb37030845b8048f1930fd749.png

ls .ssh/

查看生产的秘钥文件

在/root/.ssh 目录下生成了一对密钥文件

id_rsa 私钥

id_rsa.pub 公钥

dcf14984e97219ec944123108f5064fb.png

此时使用 cat id_rsa.pub >> authorized_keys 生成验证文件

一定是这个名字 authorized_keys;

为什么是这个名字呢:请看ssh的配置文件vim /etc/ssh/sshd_config

3e54266bca74d71d7b46e950cfde242f.pngcat id_rsa.put >>authorized_keys

注:此时使用 cat id_rsa.pub >> authorized_keys 生成验证文件,一定是追加的形式

c8686c1e1dda2a9d7bdaa92c19b06852.png

我们查看验证文件;此时只有A主机自己的公钥

cat authorized_keys

我们可以查看当当前的ROOT@A 服务器已经在认证组中了

7ada605733c009042ad9eb43c9506258.png在B主机也生成公钥[root@B ~]# ssh-keygen -t rsa

5c3ec17770b30f66b3c62f20efed0437.png

f7fc3e6684fa5cd9c78ca1aa1d43600f.png

将B服务器产生的公共秘钥拷贝到A服务器上ssh-copy-id -i id_rsa.pub root@192.168.5.21

2dfeef2b862a5899203af7ef6e33a4fb.png

然后我们可以查看A服务器的authorized_keys文件;发现里面多了root@B服务器的验证秘钥

39785dc06ec2e090ed6f536e73f559f6.png

此时我们B到A是没有问题了,拷贝或者ssh登录时不需要输入密码了

ce1b93a733b387e5b371fcb6f62d3a18.png

但是A到B还需要密码;

此时只要将验证文件从A拷贝到B机器就可以了scp authorized_keys root@192.168.5.22:/root/.ssh/

9edb1f504ea1ba3c1e4f50fe04c55184.png

我们在B服务器上也查看验证文件

45579096bf565f67d6b9765898b846fd.png

接下来我们从A服务器ssh到B服务器

6bbd372f6949752838de5aa18bda8a2e.png

最后我们看看C服务器;同理

我们在C服务器上也需要生成公钥Ssh-keygen –t rsa

52bd0348280976af0507cacbda83e19f.png

将C服务器产生的公共秘钥拷贝到A和B服务器上ssh-copy-id -i id_rsa.pub root@192.168.5.21

ssh-copy-id -i id_rsa.pub root@192.168.5.22

40fa348a7b0a6ab6265436fb9fb9a864.png

然后我们可以查看A服务器和B服务器的authorized_keys文件;发现里面多了root@C服务器的验证秘钥

服务器A有服务器C的公共秘钥了

bfaab5ffa13bf99edd3d9929b32e58e0.png

服务器B也有服务器C的公共秘钥了

10d980466050daa457c66b7211e2dd01.png

但是A到C、B到C还需要密码;

此时只要将验证文件从A拷贝到C机器、从B拷贝到C机器就可以了

从A服务器上执行scp authorized_keys root@192.168.5.23:/root/.ssh/

0a17d163f08166d0a0b77bdef2666fc7.png

从B服务器上执行scp authorized_keys root@192.168.5.23:/root/.ssh/

53331aff0da4987f228216a0f10186ee.png

最后我们在C服务器上查看认证秘钥的内容Cat authorized_keys

98354f5920e2fc8253f5685c7d2dd412.png

我们在服务器C上ssh登录A和B服务器

e0af353877ccae3930ffcf218bd51b10.png

f422ee2a003885c61f300af88814ecc7.png

我们在A服务器上ssh登录B服务器和C服务器

83a41961ee367a4abbdd72bac733ad7c.png

f59b735bf61490369a7b085f73d69d30.png

最后我们在B服务器上使用ssh登录A服务器和B服务器

4ad35aa4b3bd9fc3a930350b8dcb09d8.png

7abb3b29ac6f731cd72e3364b8ff1e5e.png

最后我们测试一下文件拷贝吧

首先在A服务器上新建文件,然后测试拷贝,都是无需输入密码即可传输拷贝[root@A ~]# touch A.txt

[root@A ~]# echo A >> A.txt

[root@A ~]# scp A.txt root@192.168.5.22:/root

[root@A ~]# scp A.txt root@192.168.5.23:/root

e46c4c66fb1313e45039c816100e65f3.png

我们在B服务器上查看

f9743aaa0ab966d4ceff28ae890e0f36.png

接下来我们测试B-->A、B-->C服务器之间的文件传输;同样我们在B服务器上创建一个B文件;

经过测试都无需输密码即可验证传输

2271d7d337585d5b5492e08e980b2d02.png[root@A ~]# touch B.txt

[root@A ~]# echo B-S >> B.txt

[root@A ~]# ls B.txt

B.txt

750e07093404a79b50c400a323bcd04e.png

最后我们测试C-->A、C-->B服务器之间的文件传输;同样在C服务器上创建一个C文件;

经过测试都无需输入密码即可传输[root@C ~]# touch C.txt

[root@C ~]# echo C-S >> C.txt

[root@C ~]# ls C.txt

C.txt

[root@C ~]# scp C.txt root@192.168.5.21:/root/

C.txt

[root@C ~]# scp C.txt root@192.168.5.22:/root/

C.txt

[root@C ~]#

f1320ed6fe240c504f7768f32f5d799a.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值