遠端控制台 (SSH) 中的 CygWin 終端未從正確的 $HOME 路徑啟動

遠端控制台 (SSH) 中的 CygWin 終端未從正確的 $HOME 路徑啟動

我已經安裝了賽格溫v1.7.28。

問題很快就得到了解釋:基本上,當透過遠端登入啟動 CygWin shell 時,$HOME不是它應該在的地方,及其所有衍生的(壞的)後果。本機控制台執行正常。

現在對於細節:

如果在 GUI (Windows XP) 上我這樣做:

c:\CygWin\bin\bash.exe --login -i

或(實際上以同樣的方式):

c:\CygWin\Cygwin.bat

我從正確的地方開始$HOME與我所有的設定檔:

LuisRivas@portatilacer ~
$ pwd
/home/LuisRivas

LuisRivas@portatilacer ~
$ ls .* -la
-rw-------  1 LuisRivas Ninguno  108 mar  3 14:34 .bash_history
-rwxr-xr-x  1 LuisRivas Ninguno 1494 mar  3 03:00 .bash_profile
-rwxr-xr-x  1 LuisRivas Ninguno 6127 mar  3 14:28 .bashrc
-rwxr-xr-x  1 LuisRivas Ninguno 1919 mar  3 03:00 .inputrc
-rwxr-xr-x  1 LuisRivas Ninguno 1236 mar  3 03:00 .profile

$ echo $HOME
/home/LuisRivas

但如果我透過 SSH 登入(Bitvise SSH 伺服器v6 安裝在 Windows XP SP3 上),我重複這個過程(同一用戶):

c:\CygWin\bin\bash.exe --login -i

現在重擊外殼沒有從應該開始的地方開始:

LuisRivas@portatilacer ~
$ echo $HOME
/cygdrive/c/Documents and Settings/LuisRivas

LuisRivas@portatilacer ~
$ pwd
/cygdrive/c/Documents and Settings/LuisRivas

LuisRivas@portatilacer ~
$ ls .* -la
-rw-------+ 1 LuisRivas       Ninguno 197 mar  3 14:36 .bash_history

.:
total 1211
drwxrwx---+ 1 Administradores SYSTEM       0 mar  3 14:30 .
drwxrwxr-x+ 1 Administradores SYSTEM       0 mar  1 04:06 ..
-rw-------+ 1 LuisRivas       Ninguno    197 mar  3 14:36 .bash_history
drwx------+ 1 LuisRivas       Ninguno      0 mar  3 14:12 Configuración local
drwx------+ 1 LuisRivas       Ninguno      0 dic 25 15:41 Cookies
drwx------+ 1 LuisRivas       Ninguno      0 mar  3 14:17 Datos de programa
drwx------+ 1 LuisRivas       Ninguno      0 dic 25 13:56 Entorno de red
drwx------+ 1 LuisRivas       Ninguno      0 dic 25 13:56 Escritorio
drwx------+ 1 LuisRivas       Ninguno      0 mar  3 14:12 Favoritos
drwx------+ 1 LuisRivas       Ninguno      0 mar  3 14:02 IETldCache
drwx------+ 1 LuisRivas       Ninguno      0 dic 25 13:56 Impresoras
drwx------+ 1 LuisRivas       Ninguno      0 dic 25 13:56 Menú Inicio
drwx------+ 1 LuisRivas       Ninguno      0 mar  3 14:12 Mis documentos
-rwx------+ 1 LuisRivas       Ninguno 786432 mar  3 14:17 NTUSER.DAT
-rwx------+ 1 LuisRivas       Ninguno   1024 mar  3 14:34 NTUSER.DAT.LOG
-rwxrwx---+ 1 Administradores SYSTEM     192 mar  3 14:03 ntuser.ini
drwx------+ 1 LuisRivas       Ninguno      0 dic 25 15:33 Plantillas
drwx------+ 1 LuisRivas       Ninguno      0 mar  3 14:12 Reciente
drwx------+ 1 LuisRivas       Ninguno      0 mar  3 14:12 SendTo

那是:賽格溫在我的 Windows 主目錄中啟動 shell,因此我沒有個人化設定(.bashrc,.bash_設定檔....等),如別名。

也許這種奇怪的行為只是由某種缺失的環境變數引起的(存在於 GUI 上,但不存在於遠端控制台上),但我無法找到它。
我怎麼能讓我的遠端控制台啟動重擊外殼包括在賽格溫應該在哪裡?

  • 編輯:這裡根據要求提供一些額外數據:

在本地 Bash Shell 中:

LuisRivas@portatilacer ~
$ id
uid=1004(LuisRivas) gid=513(Ninguno) grupos=513(Ninguno),0(root),544(Administradores),545(Usuarios)

在遠程 Bash Shell(沒有什麼不同):

LuisRivas@portatilacer ~
$ id
uid=1004(LuisRivas) gid=513(Ninguno) grupos=513(Ninguno),0(root),544(Administradores),545(Usuarios)

這是 /etc/passwd 的內容(僅顯示使用者「LuisRivas」行):

LuisRivas@portatilacer ~
$ cat /etc/passwd
[Lines not needed (I think)]
LuisRivas:unused:1004:513:U-PORTATILACER\LuisRivas,S-1-5-21-789336058-1957994488-1417001333-1004:/home/LuisRivas:/bin/bash
[Lines not needed (I think)]
  • 編輯2:在第一次寫作中我錯了:文件.bashrc在起始路徑(無論該路徑在哪裡)被讀取正確賽格溫當啟動它的外殼時。該資訊現已刪除。

  • 編輯 3:我的測試僅針對 SSH 遠端登入進行,而不是 Telnet。問題就來了:正是來自 Bitvise SSH 伺服器的某些行為(請閱讀下面的回應)。

答案1

簡單來說一下問題:Bitvise SSH 伺服器(Windows)增加一個(據說不合邏輯;似乎不需要)環境變數%家%等於%主路徑%

解決方案:管理 Bitvise SSH 伺服器新增至每個 SSH 用戶端的環境變數的可能性(油灰, 經典的 GNU 命令列SSH... ETC)。據我研究,該程式沒有這個功能。我會繼續尋找。

解決方法:

  1. 致電重擊外殼透過一個.cmd首先刪除的文件%家%環境變數。就像是:

    @設定HOME=
    @c:\CygWin\bin\bash.exe --login -i

  2. 開始重擊外殼透過改變$HOME值,然後重新啟動它:

    c:\CygWin\bin\bash.exe --login -i -c "export HOME=/home/%USERNAME%;cd /home/%USERNAME%; exec /bin/bash"

  3. 只需複製所有配置文件c:\CygWin\home\%USERNAME%c:\用戶\%用戶名%。似乎工作正常(有人知道這種方法的一些問題嗎?)。

感謝@user1147688(上圖)提供的想法和解決方案的鏈接類似的問題

答案2

對我來說,問題不是由於我能夠刪除的 Windows 環境變數 %HOME% 造成的。 “環境變數”對話方塊中未列出 %HOME% 變數。

相反,我可以透過取消選取進階設定中的「允許環境變數」來解決 Bitvise 中的問題。我還刪除了該字段中的“%HOME%”初始終端 shell 目錄,但這本身還不夠。

相關內容