Bash
使用互動式 SSH 在遠端主機上執行命令(有條件地)
我希望能夠在每次登錄遠端主機時自動在遠端主機上執行命令,但在目前的互動式 SSH 會話中。
就像是
ssh user@remotehost [run do.sh]
幾個管家任務在哪裡
do.sh
執行,然後重新附加到screen
會話(目前我do.sh
在登錄主機後手動執行)。我不想添加它,
.bashrc
因為我從其他機器登錄到這個主機,我不想do.sh
在我從那裡登錄時執行,所以我需要它是可選的。
你可以嘗試這樣的事情:
ssh server -t "do.sh; bash --login"
如此處建議:https ://serverfault.com/questions/167416/change-directory-automatically-on-ssh-login
或者您可以嘗試使用 sshd_conf(或 ~/.ssh/config)中的“LocalCommand”選項,如官方手冊頁中所述:http ://unixhelp.ed.ac.uk/CGI/man-cgi?ssh+1
難題的一部分:假設 OpenSSH,
ssh
客戶端將設置以下環境變數:
SSH_CONNECTION
標識連接的客戶端和伺服器端。該變數包含四個以空格分隔的值:客戶端 IP 地址、客戶端埠號、伺服器 IP 地址和伺服器埠號。因此,您可以使用此資訊找出您的連接來自何處。