使用 ssh_config 以 nologin 用户身份进行 SSH

使用 ssh_config 以 nologin 用户身份进行 SSH

我想从节点 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 别名或函数来节省您的输入。

相关内容