名为 ssh 的 Bashrc 函数不起作用

名为 ssh 的 Bashrc 函数不起作用

我在 bashrc 文件中创建了一个函数,这样当我通过 ssh 进入某个地方时,它会自动打开一个 tmux 会话。

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

这很好用,但我不想使用 ssht,我只想使用 ssh。当我将功能从 ssht 更改为 ssh 时,tmux 不会打开,但它确实可以成功 ssh 进入机器。

我认为它不起作用,因为当我调用 ssh 时它会忽略 bashrc 文件中的函数并运行 ssh。

有什么办法可以让我使用“ssh”而不是“ssht”

答案1

SSH Bash 函数

像您一样制作一个 ssh 函数来在登录时运行某些操作,您可以执行以下操作:

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

alias ssh=ssht
  • \在 ssh 前面添加一个会暂时禁用别名。
  • ssht功能保持不变,但我们为 ssh 添加了指向它的别名。
  • 缺点:其他东西可能会出问题,一个很好的例子就是 ssh 配置中的 tab 自动完成主机

SSH 命令(替代)

或者,您也可以使用 SSH 的内置方法,通过在文件Command="tmux"中附加公钥前面来执行此操作authorized_keys。使用方法如下:

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

相关内容