Linux
稱為 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”
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...