如何在 ssh 配置文件中撤消特定主机上的全局 RemoteCommand 配置

如何在 ssh 配置文件中撤消特定主机上的全局 RemoteCommand 配置

我有以下~/.ssh/config文件:

Host myserver1
    Hostname myserver1.blop.com
    User blup

Host myserver2
    Hostname myserver2.blop.com
    User blup

Host bitbucket.org
    RemoteCommand # Want to not take care of global RemoteCommand
    RequestTTY no

Host *
    User root
    RemoteCommand PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD}\007"' $SHELL;
    RequestTTY yes

我希望所有服务器上的默认设置RemoteCommand都是在登录后在远程 shell 上更改 PROMPT_COMMAND。(这是可行的)该RemoteCommand选项使与 bitbucket(git)的连接失败,而我没有找到RemoteCommand针对特定主机禁用的方法。

尝试过:没有,空字符串""$SHELL;

有什么想法吗?有默认RemoteCommand值可以恢复吗?

答案1

  1. 用作noneRemoteCommand
Host bitbucket.org
    RemoteCommand none
    RequestTTY no
  1. 一个替代方法只是从默认主机配置中排除 bitbucket.org:
Host * !bitbucket.org
    User root
    RemoteCommand PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD}\007"' $SHELL;
    RequestTTY yes
  1. 更好的解决方案,针对我的特定问题RemoteCommand,添加Match仅应用ssh命令的设置:

只需将其添加到文件顶部即可

Match exec "test $_ = /usr/bin/ssh"
    RemoteCommand PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD}\007"' $SHELL;
    RequestTTY yes

相关内容