是否可以根据调用应用程序(ssh 或 sshfs)在 ~/.ssh/config 中添加条件选项?

是否可以根据调用应用程序(ssh 或 sshfs)在 ~/.ssh/config 中添加条件选项?

在我的 ~/.ssh/config 文件中,我有以下选项:

RemoteCommand /bin/sh -c 'tmux has-session && exec tmux attach || exec tmux'

当通过 ssh 连接时,这会自动启动 tmux 并连接到现有会话(如果可能)。

这会导致 sshfs 无法连接并出现错误read: Connection reset by peer

有没有办法仅在使用 ssh 连接时而不是在尝试使用 sshfs 挂载文件系统时有选择地应用此选项?

请注意,我仍然想加载该文件中 sshfs 的其余选项,因为它们仍然相关。使用sshfs -F /dev/null不是一个选择。

我当然可以为 ssh 和 sshfs 创建两个单独的配置文件,但这需要大量重复,这似乎是不必要的。

答案1

假设当您想使用tmux例如时使用了不同的主机名

对于 sshfs :

ssh user@remotehost

但对于 tmux

ssh user@remotehost_tmux

然后在您的~/.ssh/config主机中有一个特定的部分remotehost_tmux

例如。

# Global Options
#UseRoaming no

# Hostname specific options
Host <hostname>_tmux
     RemoteCommand /bin/sh -c 'tmux has-session && exec tmux attach || exec tmux'
Hostname <hostname>
#

相关内容