更改我 SSH 到 CentOS 伺服器時的預設路徑?
我有一個 CentOS 5.7 Web 伺服器,我想更改使用 SSH 連接時登陸的預設位置。
目前我登陸
/home/username
,我想登陸/home
。我以 root 身份進入並添加
PermitUserEnvironment yes
到/etc/.ssh/sshd_config
- 據我了解,這會掃描使用者自己的ssh
文件夾以查找environment
文件。我不確定的正是我添加到這個環境文件中的內容,因為export path=$PATH:$HOME
它似乎不起作用,無論是在這裡還是在我的 .bashrc 或 .bash_profile 文件中(據我所知,這不會有什麼區別無論如何,因為 SSH 連接是非互動式外殼?)。提前致謝。
如果您使用 PAM 進行身份驗證,這可能是最有可能的。作為根頭進入
/etc/passwd
。在那裡你應該看到你的使用者名和路徑!在那裡改變它,你就可以自由回家了!
編輯 - 抱歉,我剛剛想到您可能不想更改您的主文件夾。在這種情況下,只需添加:
cd /home
到
.bashrc
文件的底部!
要記住的是,它
~/.ssh/environment
是在生成 shell 或ssh
命令之前讀取的,因此(例如)export 和 $PATH 都沒有意義。您只能在此處設置環境變數(不能執行一般的 shell 命令)。如果您獲取非互動式 ssh shell 的環境,然後對其進行修改,您應該得到您想要的非互動式命令。例如:
$ ssh mylogin@myserver env
將為您提供 ssh 在您的伺服器上以什麼開頭。如果您將
~/.ssh/environment
文件編寫為:
PATH=/usr/local/bin
並重新執行上面的,你應該得到“bash: env: command not found”。好的!
現在,根據系統的基礎
sshd
(即第一個“ssh …. env”呼叫)顯式建構路徑,例如(/usr/local/bin
在頭部添加):
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
另請注意,嘗試設置 CWD
~/.ssh/rc
(在~/.ssh/environment
讀取之後,但在您的ssh
shell 或命令之前執行)是沒有用的,因為您的 shell 將(預設情況下)在您的主路徑中啟動。