想通过jumpserver跳板机连我的公司服务器发现一直报错

你好我现在公司打算用jumpserver管理整个集群,每个人登录服务器前需要输入jumpserver 账户密码-> OTP-> linux服务器用户 ssh key的密码,但我现在配置发现并不能ssh成功
我的配置
Host jump
HostName xx.xx.xx.xx
Port 2222
User yang
PreferredAuthentications keyboard-interactive,password
ForwardAgent yes

Host production
HostName xx.xx.xx
User yang
ProxyJump jump
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
PreferredAuthentications publickey
RequestTTY no
ForwardAgent yes

当我 运行ssh production的时候,输入完jumpserver 密码和otp后会报错

acblacktea@acblackteas-MacBook-Air ~ % ssh production

yang@100.74.113.95’s password:

yang

Please Enter MFA Code.

(yang@100.74.113.95) [OTP Code]: 023346

channel 0: open failed: administratively prohibited: port forwarding is disabled

stdio forwarding failed

Connection closed by UNKNOWN port 65535

这个报错是因为 JumpServer禁用了端口转发功能,而ProxyJump是依赖SSH的端口去实现转发能力,所以会导致跳转失败

解决方法:

第一步:在JumpServer中开启端口转发权限,并重启一下服务

第二步:修改一下配置文件

跳板机配置,要添加以下一条命令

(RequestTTY yes)#表示强制开启TTY,让JumpServer的OTP进行交互

#JumpServer的OTP验证需要交互终端,如果RequestTTY no会导致OTP输入无响应

生产机配置,改用jumpserver支持的跳转方式

ProxyCommand ssh -o “RequestTTY=yes” jump -W %h:%p #带终端连JumpServer输密码加OTP,再让JumpServer转发请求到生产机,用密钥登录

第三步:看看jumpserver资产授权

当你jumpserver作为跳板机的时候,会限制SSH的端口转发,而你配置proxyjump的本质意义上是通过跳板机的端口转发能力连接目标主机,因此会被JumpServer拦截

  1. 检查JumpServer资产配置

    • 登录JumpServer管理台,确认目标Linux资产的“协议”设置为SSH,且端口正确(默认22)。
    • 在资产编辑页面,检查“高级设置”中是否启用了“允许端口转发”,若未启用需开启。
  2. 验证SSH代理配置

    • 确保本地SSH配置文件(~/.ssh/config)中针对production主机的ProxyJump指令指向正确的JumpServer资产,且格式无误。例如:
      Host production
          HostName <目标服务器IP>
          User <目标服务器用户名>
          ProxyJump <JumpServer用户名>@<JumpServer地址>
          IdentityFile <本地私钥路径>
      
  3. 检查JumpServer安全策略

    • 在管理台“系统设置”→“安全策略”中,确认未全局禁用端口转发功能。
    • 若目标服务器属于特定组织或节点,需检查对应组织/节点的策略是否限制端口转发。
  4. 查看日志定位问题

    • 在JumpServer管理台的“日志审计”→“操作日志”中,筛选目标资产的连接记录,查看详细错误信息。
    • 检查目标Linux服务器的/var/log/auth.log(或/var/log/secure),确认是否有SSH连接被拒绝的记录。