Linux 下实现SSH互信

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据同步 1个月
简介:

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

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

clip_image002

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-clients

1
yum  install  -y openssh-clients

clip_image001

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

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

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

第二次回车确认的

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

clip_image003

ls .ssh/

查看生产的秘钥文件

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

id_rsa 私钥

id_rsa.pub 公钥

clip_image004

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

一定是这个名字 authorized_keys;

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

1
vim  /etc/ssh/sshd_config

clip_image005

1
cat  id_rsa.put >>authorized_keys

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

clip_image006

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

cat authorized_keys

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

clip_image007

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

clip_image008

clip_image009

将B服务器产生的公共秘钥拷贝到A服务器上

1
ssh -copy- id  -i id_rsa.pub root@192.168.5.21

clip_image010

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

clip_image011

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

clip_image012

但是A到B还需要密码;

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

1
scp  authorized_keys root@192.168.5.22: /root/ . ssh /

clip_image013

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

clip_image014

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

clip_image015

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

我们在C服务器上也需要生成公钥

1
Ssh-keygen –t rsa

clip_image016

将C服务器产生的公共秘钥拷贝到A和B服务器上

1
2
ssh -copy- id  -i id_rsa.pub root@192.168.5.21
ssh -copy- id  -i id_rsa.pub root@192.168.5.22

clip_image017

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

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

clip_image018

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

clip_image019

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

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

从A服务器上执行

1
scp  authorized_keys root@192.168.5.23: /root/ . ssh /

clip_image020

从B服务器上执行

1
scp  authorized_keys root@192.168.5.23: /root/ . ssh /

clip_image021

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

1
Cat authorized_keys

clip_image022

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

clip_image023

clip_image024

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

clip_image025

clip_image026

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

clip_image027

clip_image028

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

首先在A服务器上新建文件,然后测试拷贝,都是无需输入密码即可传输拷贝

1
2
3
4
[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

clip_image029

我们在B服务器上查看

clip_image030

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

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

clip_image031

1
2
3
4
[root@A ~] # touch B.txt
[root@A ~] # echo B-S >> B.txt
[root@A ~] # ls B.txt
B.txt

clip_image032

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

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

1
2
3
4
5
6
7
8
9
[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 ~] #

clip_image033



本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1856951,如需转载请自行联系原作者

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
3月前
|
安全 Linux 网络安全
Linux端的ssh如何升级?
Linux端的ssh如何升级?
332 59
|
1月前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
4月前
|
机器学习/深度学习 存储 Linux
【机器学习 Azure Machine Learning】使用VS Code登录到Linux VM上 (Remote-SSH), 及可直接通过VS Code编辑VM中的文件
【机器学习 Azure Machine Learning】使用VS Code登录到Linux VM上 (Remote-SSH), 及可直接通过VS Code编辑VM中的文件
|
4月前
|
安全 网络协议 Linux
在Linux中,什么是SSH,并且如何使用它?
在Linux中,什么是SSH,并且如何使用它?
|
4月前
|
监控 安全 Ubuntu
在Linux中,如何进行SSH服务配置?
在Linux中,如何进行SSH服务配置?
|
4月前
|
安全 算法 Linux
在Linux中,什么是SSH?它是如何工作的?
在Linux中,什么是SSH?它是如何工作的?
|
4月前
|
Linux 网络安全
Linux开启ssh
Linux开启ssh
44 0
|
4月前
|
安全 Linux 网络安全
在Linux中,使用rsync同步数据时,假如采用的是ssh方式,并且目标机器的sshd端端并不是默认的22端口,该如何做?
在Linux中,使用rsync同步数据时,假如采用的是ssh方式,并且目标机器的sshd端端并不是默认的22端口,该如何做?
|
4月前
|
安全 Linux Shell
Linux系统之间实现免密码登录(SSH无密码登录
【8月更文挑战第21天】要在Linux系统间实现SSH免密码登录,需先在源机器生成SSH密钥对,然后将公钥复制到目标机器的`.ssh/authorized_keys`文件中。可通过`ssh-keygen`命令生成密钥,并使用`ssh-copy-id`命令传输公钥。最后测试SSH连接,确保能无密码登录。若目标机器缺少相关目录或文件,需手动创建并设置适当权限。完成这些步骤后,即可实现安全便捷的免密码登录。
182 0
|
4月前
|
安全 Linux 网络安全
在Linux中,如何配置SSH以确保远程连接的安全?
在Linux中,如何配置SSH以确保远程连接的安全?
下一篇
DataWorks