我想从节点 A 连接到 C,但同时想切换到 nologin 用户。在 ssh 配置中我有:
Host B
Hostname bb
User a
ForwardX11 yes
ForwardX11Trusted yes
Host C
Hostname cc
User a
ForwardX11 yes
ForwardX11Trusted yes
ProxyCommand ssh a@B 'netcat %h 22'
ssh -t a@C 'sudo -u serviceuser bash'
工作正常。
但是,我想使用一个“ssh user@host”命令通过 ssh 连接到节点,该命令可以在不支持其他 ssh 参数的文件管理器中使用。我尝试使用:
Host D
User a
RequestTTY yes
ProxyCommand ssh a@C 'sudo -u serviceuser bash'
这个,以及它的变体(/usr/bin/bash ..等)总是返回
bash: line 1: $'SSH-2.0-OpenSSH_6.9\r': command not found
修复此问题的正确方法是什么?
答案1
这是不可能的。中的代理命令ssh_config
用于 IO 重定向,这是进行多跳连接的首选方式。您无法在其中指定应在远程服务器上运行的命令。
您可以做的最好的事情是使用 bash 别名或函数来节省您的输入。