名为ssh的Bashrc函数不起作用

我在我的bashrc文件中创build了一个函数,当我ssh进入某些东西时,它会自动打开一个tmux会话。

function ssht () { /usr/bin/ssh $@ -t 'tmux a || tmux || /bin/bash' } 

这很好,但我不想用ssht,我只想用ssh。 当我从ssht更改function到SSH tmux不打开,但它成功ssh进入机器。

我认为这是行不通的,因为当我调用ssh时,它会忽略bashrc文件中的函数,而是运行ssh。

有什么方法可以使用“ssh”而不是“ssht”

SSH Bashfunction

使用ssh函数像login一样运行login,可以执行以下操作:

 function ssht () { \ssh $@ -t 'tmux a || tmux || /bin/bash' } alias ssh=ssht 
  • 在ssh前添加一个\暂时禁用别名。
  • ssht函数保持不变,但我们添加一个别名到ssh指向它。
  • DOWNSIDE:其他事情可能会中断,很好的例子是你的sshconfiguration中的tab-autocompleting主机

SSH命令(可选)

或者,您可以使用SSH的内置方法,在authorized_keys文件的公钥前面追加Command="tmux" 。 它可以使用如下:

 command="echo howdy" ssh-rsa AAAAB3...