远程控制台(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

现在Bash Shell没有从应该开始的地方开始:

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包括在赛格威应该在哪里?

  • 编辑:根据要求,这里有一些额外的数据:

在本地 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在起始路径(无论该路径在哪里)处读取 OK赛格威启动其 shell 时。该信息现已被删除。

  • 编辑 3:我的测试只针对 SSH 远程登录,而不是 Telnet。因此问题就出现了:正是 Bitvise SSH 服务器的某些行为导致的(请参阅下面的回复)。

答案1

问题概括起来就是:Bitvise SSH 服务器(Windows)添加一个(据称不合逻辑;似乎不需要的)环境变量%家%等于%主页路径%

解决方案:Bitvise SSH Server 为每个 SSH 客户端添加管理环境变量的可能性(油灰,经典的 GNU 命令行SSH...等等)。据我研究,该程序没有此功能。我会继续寻找。

解决方法:

  1. 致电Bash Shell通过命令首先删除的文件%家%环境变量。例如:

    @ 设置 HOME=
    @ c:\CygWin\bin\bash.exe --login -i

  2. 开始Bash Shell通过改变$HOME值,然后重新启动它:

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

  3. 只需复制所有配置文件即可c:\CygWin\home\%用户名%c:\Users\%用户名%。似乎运行正常(有人知道这个方法存在什么问题吗?)。

感谢@user1147688(以上)提供的想法和解决方案链接类似问题

答案2

对我来说,问题不是由于我能够删除的 Windows 环境变量 %HOME% 造成的。环境变量对话框中没有列出 %HOME% 变量。

相反,我能够通过取消选中高级设置中的“允许环境变量”来解决 Bitvise 中的问题。我还删除了字段中的“%HOME%”初始终端 shell 目录,但这本身还不够。

相关内容