
我希望在 .profile 中建立以下腳本,這樣每個 SSH 會話都會直接進入其位置:
- 檢查指定主機(user@host)。
- 如果主機 = host1 -- cd /var/www/site1
ETC。
幫助! :)
答案1
答案2
您的問題不清楚:您是否透過多個別名到達同一主機?您是否正在存取共享 的不同主機.profile
?您是否嘗試根據來源主機名稱或目標主機名稱執行命令?
如果你想在不同的遠端主機上有不同的效果,只需測試遠端主機名稱:
case "$(hostname)" in
host1) cd /var/www/site1;;
esac
如果你想在同一台主機上有不同的效果,你可以使用SendEnv
你的指令~/.ssh/config
發送環境變數(假設您正在使用開放SSH客戶)。這些需要啟用AcceptEnv
伺服器端的指令,但情況通常並非如此。然而,LC_*
變數通常是允許通過的,因此您可以使用它們來傳遞訊息。在客戶端,運行LC_VIRTUAL_HOST=site1 ssh common-host.provider.com
.在你的.profile
伺服器上,寫
case "$LC_VIRTUAL_HOST" in
host1) cd /var/www/site1;;
esac