Linux实现两台服务器之间ssh连接

环境检查

检查OpenSSL

复制代码
ssh -V

输入上面的命令,会有如下的返回,即为正常。

复制代码
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

继续输入

复制代码
rpm -qa | grep ssh

出现如下返回,即为正常。(请无视版本号)

复制代码
openssh-7.4p1-21.el7.x86_64
openssh-server-7.4p1-21.el7.x86_64
libssh2-1.8.0-3.el7.x86_64
openssh-clients-7.4p1-21.el7.x86_64

如果这里没有的话,需要进行安装。执行如下命令

复制代码
yum install openssh-clients
yum install openssh-server

检查SSH服务是否开启

只有在SSH服务开启的状态下,才能远程登录,连接和管理服务器。如果关闭SSH服务,则远程连接客户端无法再连接服务器,但是已连接的客户端可以继续使用。

执行命令查看开启和关闭状态(两条命令均可,系统版本不同命令不同)

复制代码
systemctl start sshd.service
service sshd status 

active 表示SSH服务是启动的 inactive表示SSH服务已关闭

执行命令 systemctl start sshd.service 或者 service sshd start 启动SSH服务。

执行命令 systemctl stop sshd.service 或者 service sshd stop 启动SSH服务。

执行命令 systemctl restart sshd.service 或者 service sshd restart 重启SSH服务。

执行命令 systemctl enable sshd.service 或者 service sshd enable 设置服务开机自启。

生成公钥和私钥

如在两台服务器(172.30.4.81 和 172.30.4.82)上配置,使得 172.30.4.82 能通过公钥访问 172.30.4.81 的详细步骤,这里假设两台服务器都是基于常见的 Linux 操作系统(如 CentOS、Ubuntu 等):

在 172.30.4.81(生成公钥和私钥的服务器)上操作

  1. 生成密钥对(如果还未生成的话) :
    以要接收连接的用户身份(通常可以是 root 用户或者其他有对应权限的普通用户,这里以 root 为例)登录到 172.30.4.81 服务器,在命令行中执行以下命令来生成 RSA 类型的密钥对(当然也可以选择其他如 DSA 等加密算法类型,不过 RSA 较为常用):

    ssh-keygen -t rsa

运行该命令后,系统会提示你输入保存密钥文件的路径(直接回车可使用默认路径,一般为 /root/.ssh/id_rsa)以及设置密钥的密码(也可以直接回车不设置密码,不过设置密码会更安全些,后续每次使用该私钥连接时需要输入密码来验证)等信息,按照提示依次操作完成即可。

  1. 查看生成的公钥和私钥文件 :
    生成密钥对后,在默认路径(/root/.ssh/ 目录下,如果前面步骤使用了默认设置的话)会有两个文件:
    • id_rsa:这是私钥文件,需要妥善保管,不能泄露给其他人,它用于后续验证身份。
    • id_rsa.pub:这是公钥文件,其内容将会被添加到要访问的目标服务器(也就是 172.30.4.82)的授权文件中。

复制公钥

在 172.30.4.82(使用公钥访问的服务器)上操作

  1. 将公钥添加到 172.30.4.81 的授权文件中 :
    先以合适的用户身份(比如 root 用户,如果有对应权限的话)登录到 172.30.4.82 服务器,然后可以通过以下几种常见方式将 172.30.4.81 上生成的公钥添加到 172.30.4.82 的授权文件中:

    • 手动复制粘贴方式(较简单直观但稍麻烦) :
      使用文本编辑器(如 vim、nano 等)打开 172.30.4.81 服务器上的公钥文件(/root/.ssh/id_rsa.pub,假设是 root 用户生成的密钥对且使用默认路径),复制其中的内容(公钥内容是一长串字符,类似 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ... 这样的格式)。
      接着在 172.30.4.82 服务器上打开 /root/.ssh/authorized_keys 文件(如果该文件不存在,则创建它,创建命令可以是 touch /root/.ssh/authorized_keys),然后将复制的公钥内容粘贴到 authorized_keys 文件的新一行中保存退出即可。
    • 使用 ssh-copy-id 命令(更便捷推荐) :
      在 172.30.4.82 服务器上执行以下命令(假设同样是以 root 用户身份进行操作,且 172.30.4.81 服务器的 root 用户已经生成了密钥对):

    ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.30.4.81

该命令会自动将指定的公钥文件(这里通过 -i 参数指定了 172.30.4.81 服务器上 root 用户的公钥文件路径 /root/.ssh/id_rsa.pub)内容添加到 172.30.4.82 服务器对应 root 用户的 authorized_keys 文件中,并且会尝试使用密码(如果之前生成密钥对时设置了私钥密码的话,这里就需要输入密码来完成操作)进行连接验证等相关操作,操作成功后,后续就能使用公钥进行无密码登录了(前提是没有私钥密码或者输入正确的私钥密码)。

测试连接

在 172.30.4.82 服务器上执行以下 SSH 连接命令来测试是否能通过公钥成功访问 172.30.4.81 服务器:

复制代码
ssh root@172.30.4.81

如果配置正确,此时应该能够直接连接到 172.30.4.81 服务器,而不会再提示输入密码(除非之前生成私钥时设置了密码,那么此时需要输入私钥密码来完成连接)。

通过以上步骤,就能实现 172.30.4.82 通过公钥访问 172.30.4.81 的操作了,在实际应用中,可以根据具体的业务需求和安全策略,对涉及的用户、密钥权限等进行进一步的细化管理和配置优化。

相关推荐
额额额对了14 分钟前
Linux 驱动开发:基于 platform 总线 + misc 设备的 DS18B20 单总线温度驱动
linux·c语言·开发语言·驱动开发·嵌入式硬件
木雷坞26 分钟前
Docker Compose部署Metabase:应用库隔离与日期筛选看板
运维·docker·容器
讯捷蓝达34 分钟前
台山曙光I620-G20服务器RAID5离线数据恢复全过程
运维·服务器
tedcloud12338 分钟前
Docker Compose 部署 Immich:手机照片自动备份与常见故障排查
运维·前端·docker·容器·智能手机·开源·流程图
Android系统攻城狮1 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_activate调用流程与实战(七十九)
linux·运维·服务器·gstreamer音视频·gstreamer音视频进阶
小羊没烦恼!1 小时前
在.net中读写config文件的各种方法
java·大数据·运维·服务器·前端·数据库·oracle
Escalating_xu1 小时前
【Linux 网络编程】网络命令加餐:用 ping、netstat、watch 和 pidof 排查服务问题
linux·运维·网络
mounter6251 小时前
现代 Linux 内核在异构内存与硬件演进下的架构变革:压缩 RAM、CXL 与分布式内存
linux·linux kernel·kernel
YH行业报告分析1 小时前
2026两轴Delta并联机器人深度分析:高速分拣场景下的轻量化自动化升级路径
运维·机器人·自动化
nece0011 小时前
vbox 为虚拟机配置网络
运维·服务器·网络