2025-01-16
Linux运维
00

目录

通过跳板机配置SSH隧道轻松连接远程服务器
场景描述
安装 sshpass
配置SSH
配置说明
测试连接
安全性建议

通过跳板机配置SSH隧道轻松连接远程服务器

在实际工作中,我们经常会遇到这样的场景:某些服务器不可直接访问,需要通过一台中间服务器(跳板机)进行中转。本文将介绍如何配置SSH跳板机,实现在不暴露中间过程的情况下,轻松从一台机器连接到最终目标服务器。

场景描述

假设我们的网络环境如下:

  • 机器A(本地机器):IP为192.168.1.10。
  • 机器B(跳板机):IP为203.0.113.10,SSH端口为16120,用户名为 userB,密码为 passwordB
  • 机器C(目标机器):IP为203.0.113.20,SSH端口为16120,用户名为 root,密码为 passwordC

我们的目标是从机器A直接SSH连接到机器C,中间通过机器B进行跳转。

安装 sshpass

为了在 ProxyCommand 中实现自动输入密码,避免手动交互,我们使用 sshpass 工具。具体安装方法如下:

  • CentOS/RHEL:
sh
sudo yum install sshpass
  • Debian/Ubuntu:
sh
sudo apt-get install sshpass
  • macOS(Homebrew):
sh
brew install hudochenkov/sshpass/sshpass

配置SSH

在机器A上配置SSH隧道,通过修改~/.ssh/config文件,添加如下内容:

ssh
Host B HostName 203.0.113.10 Port 16120 User userB IdentityFile ~/.ssh/id_rsa # 如果使用密码登录,这一行可以省略 Host C HostName 203.0.113.20 Port 16120 User root ProxyCommand sshpass -p passwordB ssh -o StrictHostKeyChecking=no -W %h:%p [email protected] -p 16120

配置说明

  • Host B:配置跳板机的相关信息,包括IP地址、SSH端口、用户名。如果已使用密钥认证,建议配置 IdentityFile 指向私钥文件。
  • Host C:配置目标服务器的信息。ProxyCommand 命令中使用 sshpass 工具来自动输入跳板机的密码,并通过跳板机连接到目标服务器。

测试连接

在完成上述配置后,可以直接从机器A连接到机器C:

sh
ssh C

SSH命令会执行以下步骤:

  1. 通过 sshpass 工具自动输入密码,连接到跳板机B。
  2. 从跳板机B跳转并连接到目标机器C。

安全性建议

  • 尽量使用SSH密钥认证,避免在配置文件中明文存储密码。
  • 确保~/.ssh目录和配置文件的权限安全性,防止未经授权的访问。一般设置为:
sh
chmod 700 ~/.ssh chmod 600 ~/.ssh/config

通过上述配置,我们可以简化多跳SSH连接操作,使得从机器A到机器C的连接过程变得透明和便捷。这种方法特别适合那些需要跨多个网络节点进行安全访问的场景。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!