Ssh

根據登錄憑據更改 bash 提示符中顯示的主機名

  • November 30, 2015

我在一台伺服器上託管多個域。

我希望能夠更改我的 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 *

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