Linux

稱為 ssh 的 Bashrc 函式不起作用

  • January 6, 2015

我在我的 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”

SSH Bash 函式

像您一樣創建一個 ssh 函式以在登錄時執行某些內容,您可以執行以下操作:

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

alias ssh=ssht
  • \在 ssh 前面添加一個臨時禁用別名。
  • ssht函式保持不變,但我們為指向它的 ssh 添加了一個別名。
  • 缺點:其他事情可能會中斷,很好的例子是選項卡自動完成主機超出您的 ssh 配置

SSH 命令(替代)

或者,您可以使用 SSH 的內置方式來執行此操作,方法是在文件Command="tmux"中的公鑰前面附加。authorized_keys它可以按如下方式使用:

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

引用自:https://serverfault.com/questions/656493