Linux 下实现SSH互信

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

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

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

yum install -y openssh-clients

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

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

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

第二次回车确认的

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

ls .ssh/

查看生产的秘钥文件

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

id_rsa 私钥

id_rsa.pub 公钥

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

一定是这个名字 authorized_keys;

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

vim /etc/ssh/sshd_config

cat id_rsa.put >>authorized_keys

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

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

cat authorized_keys

我们可以查看当当前的[email protected] 服务器已经在认证组中了

在B主机也生成公钥[[email protected] ~]# ssh-keygen -t rsa

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

ssh-copy-id -i id_rsa.pub [email protected]

然后我们可以查看A服务器的authorized_keys文件;发现里面多了[email protected]服务器的验证秘钥

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

但是A到B还需要密码;

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

scp authorized_keys [email protected]:/root/.ssh/

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

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

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

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

Ssh-keygen –t rsa

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

ssh-copy-id -i id_rsa.pub [email protected]
ssh-copy-id -i id_rsa.pub [email protected]

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

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

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

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

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

从A服务器上执行

scp authorized_keys [email protected]:/root/.ssh/

从B服务器上执行

scp authorized_keys [email protected]:/root/.ssh/

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

Cat authorized_keys

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

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

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

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

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

[[email protected] ~]# touch A.txt
[[email protected] ~]# echo A >> A.txt
[[email protected] ~]# scp A.txt [email protected]:/root
[[email protected] ~]# scp A.txt [email protected]:/root

我们在B服务器上查看

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

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

[[email protected] ~]# touch B.txt
[[email protected] ~]# echo B-S >> B.txt
[[email protected] ~]# ls B.txt
B.txt

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

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

[[email protected] ~]# touch C.txt
[[email protected] ~]# echo C-S >> C.txt
[[email protected] ~]# ls C.txt
C.txt
[[email protected] ~]# scp C.txt [email protected]:/root/
C.txt
[[email protected] ~]# scp C.txt [email protected]:/root/
C.txt
[[email protected] ~]#

时间: 2025-01-01 10:24:53

Linux 下实现SSH互信的相关文章

Linux下的ssh环境搭建与管理

Linux下的ssh环境搭建与管理 实验环境 1:网桥模式 2:安装好vmtoos 3:安装好yum 4:安装好ssh相关软件包 5:服务端:xuegod-63   IP:192.168.1.63 客户端:xuegod-64   IP:192.168.1.64 客户端普通用户:ceshi  密码:123456 6:安装好扫描软件rpm -ivh/mnt/Packages/nmap-5.21-4.el6.x86_64.rpm 实验目标 1:SSHD服务介绍 2:SSHD服务安装配置 3:两Linu

Linux下通过ssh连接github

github每次pull/push代码时要求推送代码的用户是合法的,所以每次推送时候都要输入账号密码用以验证用户是否为合法用户,而ssh是一种安全的传输模式,可以代替用户的这一"输入账号密码"的行为来验证用户. github共支持2种操作方式 https 可以随意克隆github上的项目,而不管是谁的:在pull/push的时候是需要验证用户名和密码的 ssh 克隆者必须是拥者或管理员,且需要先添加 SSH key ,否则无法克隆.在pull/push的时候不再是验证用户名和密码,而是

Linux下的ssh实验环境搭建与管理

Linux下的ssh实验环境搭建与管理 实验环境 服务端:xuegod-63   IP:192.168.1.63 客户端:xuegod-64   IP:192.168.1.64 客户端普通用户:ceshi  密码:123456 安装好扫描软件rpm -ivh /mnt/Packages/nmap-5.21-4.el6.x86_64.rpm 实验目标 1:SSHD服务介绍 2:SSHD服务安装配置 3:两Linux服务器之间数据拷贝 4:SSHD服务作用: 实验步骤 1:搭建环境 1):网桥模式

linux下的ssh工具之,本地上传到linux服务器and Linux服务器文件另存为本地。非sftp工具。

首先,当你只有一个ssh工具可以连接linux,但你有想把文件在 linux 和windows(本地)直接的切换.其实可以的: 本文参考 1.将本地的文件,放到ssh远程的linux服务器上: 首先要安装工具包:   yum -y install lrzsz ok   操作方式是,在当前目录下 执行: rz    就会出现一个windows的弹框,选择你要上传到linux服务器上的文件点击确认就可以. 常用参数 -b 以二进制方式,默认为文本方式.(Binary (tell it like it

【转】linux下安装ssh服务器端及ssh的安全配置

一.在服务器上安装ssh的服务器端. $ sudo apt-get install openssh-server 2. 启动ssh-server. $ /etc/init.d/sshrestart 3. 确认ssh-server已经正常工作. $ netstat -tlp tcp6    0    0 *:ssh                *:*                   LISTEN     - 看到上面这一行输出说明ssh-server已经在运行了. 4. 在客户端通过ssh登

linux服务器配置域名ssh 互信

主机信息 192.168.10.10  node1.zzx.com 192.168.10.11  node2.zzx.com 分别配置主机域名 hostname node1.zzx.com hostname node2.zzx.com 分别修改配置 vim /etc/sysconfig/network 修改 HOSTNAME=node1.zzx.com HOSTNAEM=node2.zzx.com vim /etc/hosts 添加 192.168.10.10 node1.zzx.com nod

Linux 多主机SSH互信操作---noob....

创建虚拟机后-- ssh-keygen 生成公钥和私钥对 -rw------- 1 root root 1679 11月 4 09:18 id_rsa-rw-r--r-- 1 root root 395 11月 4 09:18 id_rsa.pub id_rsa 里面是私钥信息 需要保存好. id_rsa.pub 里面就是制作好的公钥 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDnxrJDOsPI0XoE7WxzbmGa/i2O1/LW0iVRe3Qe+1iot

Linux下修改ssh端口和禁止root远程登录

我们都知道,ssh默认端口号是22,要更改端口号为9688,需要编辑/etc/ssh/ssh_config和/etc/ssh/sshd_config两个文件即可: 禁止root远程登录,则需要编辑/etc/ssh/sshd_config.(可能部分Linux目录为/etc/sshd,请根据实际情况修改) 操作步骤如下: 1.编辑/etc/ssh/ssh_config文件: [root[email protected] ~]# cat /etc/ssh/ssh_config |grep Port

linux下的ssh与ssh客户端

经常会看到ssh客户端,或者听到ssh到某台机器..问题:ssh和ssh客户端什么关系? 1.ssh,secure shell,是一种网络交互协议,也指实现该协议的网络服务程序.主要用于远程机器管理,包括客户端和服务器两部分. 服务端是一个守护进程(daemon),他在后台运行并响应来自客户端的连接请求.服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证.密钥交换.对称密钥加密和非安全连接. 客户端包含ssh程序以及像scp(远程拷贝).slogin(远程登陆).sftp(安