Linux

當我 SSH 到伺服器時更改預設目錄

  • September 10, 2021

我想知道是否有辦法更改我在 SSH 進入我的 Ubuntu 伺服器後放入的預設目錄。

當我登錄到我的伺服器時,99% 的時間是訪問特定目錄中的文件:

/var/www/websites

是否有一個我可以編輯的配置文件,以確保我在登錄時直接進入該目錄?

有三種方法可以實現這一點:

  • 添加cd /var/www/websites到您的.bash_profile. 這僅對互動式登錄(例如 ssh)執行。
  • 添加cd /var/www/websites到您的.bashrc. 我在我們的 puppetmasters 上使用這個,因為我總是想在 /etc/puppet/environments/dkaarsemaker 那里而不是我的 homedir :-)
  • 將伺服器上的主目錄更改為 /var/www/websites(這不是一個好主意)

**警告!**首先在非必要帳戶上嘗試此操作,因為如果您在命令中出錯,您可能會失去對遠端系統的訪問權限。


如果您使用密鑰進行 SSH 登錄,那麼您可以通過在遠端伺服器上command=的密鑰之前添加前綴來更改路徑。例子:~/.ssh/authorized_keys

command="cd /var/www/websites ; /bin/bash -l" ssh-rsa AAA.....rest of the key

可以為同一個使用者生成和使用多個密鑰。伺服器上的一個鍵可能包含另一個可能不包含的命令 - 這樣您就可以在登錄時選擇預期的行為。你可以簡單地用local ~/.ssh/config包裝它:

Host websites-my-host
   HostName <realhostname>
   IdentityFile ~/.ssh/<key1>  #on the server key with "command"
   User webmaster

Host my-host
   HostName <realhostname>
   IdentityFile ~/.ssh/<key2>  #on the server key without command
   User webmaster

這將發生:

local$ ssh websites-my-host
webmaster@realhostname:/var/www/websites$ _

或者:

local$ ssh my-host
webmaster@realhostname:~$ _

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