Ssh
根據登錄憑據更改 bash 提示符中顯示的主機名
我在一台伺服器上託管多個域。
我希望能夠更改我的 bash 提示符中顯示的主機名,以指示我在 ssh 進入伺服器時選擇了哪一個。
我的提示如下:
\u@\h
這顯示為:
user@hostname
我將如何更改
\h
以顯示我登錄的域(blah.net、hmm.com 等)?
原來是通過字元串匹配來
ssh
查找行的ssh_config(5)
,所以如果所有IP都相同就可以了。那麼,你想要的是
- 每個系統的不同線路,
.ssh/config
用於HostName
給出ssh
真實的主機域名- 在本地環境中擁有三個不同的環境變數,其中包含不同的提示
- 讓每一行使用
.ssh/config
發送不同的變數SendEnv
,請參閱man ssh_config
。- 從所有三個中做出提示(兩個將始終為空)
- 放入and
AcceptEnv *
(也應該工作。)/etc/ssh/sshd_config``sudo kill -1 $(cat /var/run/sshd.pid)
AcceptEnv E1 E2 E3
例子。
客戶
.ssh/config
Host barb HostName deb SendEnv BARB Host jane HostName deb SendEnv JANE Host deb barb jane Protocol 2 ForwardAgent yes Compression no
伺服器
.bashrc
PS1='$BARB$JANE.otherstuff...'
伺服器
/etc/ssh/sshd_config
... AcceptEnv *