在Linux系统中,跳转服务器(也常被称为“跳板机”或“中间服务器”)是运维工作中常见的工具,主要用于安全访问内网资源或统一管理多台服务器的连接,通过跳转服务器,用户可以先登录一台具有公网访问权限的中间服务器,再通过该服务器访问内网中的其他服务器,从而增强安全性并简化操作流程,以下是关于Linux跳转服务器命令的详细说明,包括常用命令、配置方法及实际应用场景。

跳转服务器的基本使用方法
直接通过SSH跳转
最基础的跳转方式是使用SSH命令的“-J”参数(ProxyJump),该参数允许用户指定一个或多个跳转服务器,假设需要通过跳转服务器jump-server
(IP地址为168.1.100
)访问内网服务器target-server
(IP地址为0.0.5
),可以使用以下命令:
ssh -J user@192.168.1.100 user@10.0.0.5
user
是跳转服务器和目标服务器的用户名(如果不同,需分别指定),执行此命令后,系统会先要求输入跳转服务器的密码,验证通过后再连接目标服务器。
多级跳转
如果需要通过多级跳转服务器访问目标服务器,可以在-J
参数中按顺序指定多个跳转节点。
ssh -J user1@192.168.1.100,user2@192.168.1.200 user@10.0.0.5
此命令会先通过user1@192.168.1.100
连接,再通过user2@192.168.1.200
最终到达目标服务器。

使用SSH配置文件简化命令
为了简化频繁的跳转操作,可以在SSH配置文件(~/.ssh/config
)中定义跳转规则。
Host jump-server
HostName 192.168.1.100
User user1
Host target-server
HostName 10.0.0.5
User user2
ProxyJump jump-server
配置完成后,只需执行ssh target-server
即可自动通过跳转服务器连接目标服务器。
跳转服务器的进阶配置
密钥认证与免密登录
为了提升安全性和便利性,建议使用SSH密钥认证代替密码登录,具体步骤包括:
- 生成SSH密钥对(如果尚未生成):
ssh-keygen -t rsa -b 4096
- 将公钥复制到跳转服务器和目标服务器的
~/.ssh/authorized_keys
文件中:ssh-copy-id user@jump-server ssh-copy-id user@target-server
配置完成后,连接跳转服务器和目标服务器时无需输入密码。
(图片来源网络,侵删)
端口转发与隧道
跳转服务器还可用于建立端口转发,实现安全访问内网服务,将本地机器的8080
端口转发到目标服务器的80
端口:
ssh -L 8080:target-server:80 user@jump-server
执行此命令后,访问本地http://localhost:8080
即可通过跳转服务器访问目标服务器的80
端口。
使用ProxyCommand实现更复杂的跳转
对于不支持-J
参数的旧版SSH,可以通过ProxyCommand
实现跳转,在~/.ssh/config
中添加以下配置:
Host target-server
HostName 10.0.0.5
User user
ProxyCommand ssh -W %h:%p user@jump-server
此配置的效果与-J
参数类似,但兼容性更强。
跳转服务器的常见应用场景
安全访问内网资源
企业内网服务器通常不直接暴露在公网,通过跳转服务器可以避免直接暴露内网IP,降低安全风险。
统一管理多台服务器
运维人员可以通过一台跳转服务器集中管理多台内网服务器,避免频繁切换网络环境。
临时访问控制
跳转服务器可以设置访问权限,例如限制特定用户只能访问指定的内网服务器,或记录所有登录日志。
跳转服务器的维护与优化
定期更新系统
确保跳转服务器的操作系统和SSH软件包保持最新,避免安全漏洞。
限制用户权限
通过sudo
或用户组管理,限制用户在跳转服务器上的操作权限,防止误操作或恶意行为。
使用SSH密钥轮换
定期更换SSH密钥,并清理无效的公钥,确保访问安全。
监控与日志
启用SSH日志记录,并使用工具(如fail2ban
)监控异常登录行为,及时响应安全事件。
跳转服务器的常见问题与解决方案
以下是跳转服务器使用过程中可能遇到的问题及解决方法:
问题 | 原因 | 解决方案 |
---|---|---|
连接超时 | 跳转服务器或目标服务器网络不通 | 检查网络连通性,确认防火墙规则 |
密钥认证失败 | 密钥未正确配置或权限错误 | 重新生成密钥并检查~/.ssh 目录权限(需为700 ) |
多级跳转失败 | 中间服务器配置错误 | 检查ProxyJump 或ProxyCommand 配置顺序 |
相关问答FAQs
问题1:如何通过跳转服务器上传文件到目标服务器?
解答:可以使用scp
命令结合-J
参数实现文件上传,将本地文件test.txt
上传到目标服务器的/home/user/
目录:
scp -J user@jump-server test.txt user@target-server:/home/user/
问题2:跳转服务器连接时出现“Permission denied (publickey,password)”错误怎么办?
解答:此错误通常是由于认证失败导致,可按以下步骤排查:
- 确认SSH密钥已添加到目标服务器的
authorized_keys
文件中; - 检查
~/.ssh
目录及authorized_keys
文件的权限(目录权限应为700
,文件权限应为600
); - 确认目标服务器SSH服务是否启用密钥认证(检查
/etc/ssh/sshd_config
中的PubkeyAuthentication
选项)。