リモート コンソール (SSH) の CygWin ターミナルが正しい $HOME パスで起動しない

リモート コンソール (SSH) の CygWin ターミナルが正しい $HOME パスで起動しない

インストールしましたシグウィンバージョン1.7.28。

問題はすぐに説明される: 基本的に、リモートログイン経由でCygWinシェルを起動すると、$ホームは、すべての派生的な(悪い)結果とともに、あるべき場所にありません。ローカル コンソールは正常に動作します。

さて、詳細:

GUI (Windows XP) の場合は次のようにします。

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

または(実質的には同じ方法):

c:\CygWin\Cygwin.bat

私は正しいところから始めます$ホームすべての設定ファイル:

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のホームディレクトリでシェルを起動したので、パーソナライズされていません(.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: 私のテストは、Telnet ではなく SSH リモート ログインでのみ実行されました。そのため、問題が発生しました。正確には、Bitvise SSH Server の動作によるものです (以下の応答を参照してください)。

答え1

問題を一言で言うと次のようになります:Bitvise SSH サーバー(Windows) 環境変数 (おそらく非論理的、必要ではないと思われる) を追加します%家%それは%ホームパス%

解決策: Bitvise SSH ServerがすべてのSSHクライアントに追加する環境変数を管理する可能性(パテ、古典的なGNUコマンドラインパスワード...など。私が調べた限りでは、プログラムにこの機能はありません。引き続き調査します。

回避策:

  1. 電話するバッシュシェル経由.cmd最初に削除するファイル%家%環境変数。次のようになります:

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

  2. 開始バッシュシェル変更することで$ホーム値を変更して再起動します。

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

  3. すべての設定ファイルをコピーするだけでc:\CygWin\home\%ユーザー名%c:\User\%ユーザー名%問題なく動作するようです (この方法の問題について知っている人はいますか?)。

アイデアと解決策へのリンクを提供してくれた@user1147688(上記)に感謝します。同様の質問

答え2

私の場合、問題は削除できた Windows 環境変数 %HOME% が原因ではありませんでした。環境変数ダイアログ ボックスには %HOME% 変数は表示されませんでした。

代わりに、Bitviseの詳細設定で「環境変数を許可する」のチェックを外すことで問題を解決できました。また、フィールドの「%HOME%」も削除しました。初期ターミナルシェルディレクトリしかし、それだけでは十分ではありませんでした。

関連情報