El terminal CygWin en la consola remota (SSH) no se inicia en la ruta $HOME correcta

El terminal CygWin en la consola remota (SSH) no se inicia en la ruta $HOME correcta

he instaladoCygwinv1.7.28.

El problema se explica rápidamente.: Básicamente, al iniciar un shell CygWin mediante inicio de sesión remoto, el$INICIOno está donde debería, con todas las (malas) consecuencias derivadas de ello. Las consolas locales funcionan bien.

Y ahora para eldetalles:

Si en la GUI (Windows XP) hago:

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

o (de la misma manera, prácticamente):

c:\CygWin\Cygwin.bat

empiezo por lo correcto$INICIOcon todos mis archivos de configuración:

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

Pero si inicio sesión a través de SSH (Servidor SSH Bitvisev6 instalado en Windows XP SP3) y repito el proceso (mismo usuario):

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

Ahora elShell de golpeno comienza donde debería:

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

Eso es:CygwinInicié el shell en mi directorio de inicio de Windows, por lo que no tengo mis personalizaciones (.bashrc,.bash_profile...etc), como alias.

Tal vez este comportamiento extraño se deba simplemente a algún tipo de variable de entorno faltante (que existe en la GUI, pero no en la consola remota), pero no he podido localizarla.
¿Cómo podría hacer para que mi consola remota inicie elShell de golpeincluido enCygwindonde debería?

  • EDITAR: aquí algunos datos adicionales a pedido:

En Bash Shell local:

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

En Bash Shell remoto (nada difiere):

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

Y este es el contenido de /etc/passwd (solo se muestra la línea del usuario "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)]
  • EDITAR 2: En un primer escrito me equivoqué: el archivo.bashrcen la ruta inicial (dondequiera que esté esta ruta) se lee OK porCygwinal iniciar su caparazón. Esa información está eliminada ahora.

  • EDITAR 3: Mis pruebas solo se realizaron en inicios de sesión remotos SSH, no en Telnet. Entonces surgió el problema: precisamente por algún comportamiento de Bitvise SSH Server (lea la respuesta a continuación).

Respuesta1

El problema en pocas palabras:Servidor SSH Bitvise(Windows) agrega una variable de entorno (supuestamente ilógica; parece no ser necesaria)%HOGAR%eso equivale a%RUTA DE INICIO%.

La solución: la posibilidad de gestionar las variables de entorno que Bitvise SSH Server añade a cada cliente SSH (Masilla, línea de comandos clásica de GNUSSH... etc). Según he investigado, el programa no tiene esta funcionalidad. Seguiré buscando.

Soluciones alternativas:

  1. Llama aShell de golpea través de.cmdarchivo que primero elimina el%HOGAR%Variable ambiental. Algo como:

    @ establecer INICIO =
    @ c:\CygWin\bin\bash.exe --login -i

  2. Comenzando elShell de golpecambiando el$INICIOvalor y reiniciarlo:

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

  3. Simplemente copiando todos los archivos de configuración dec:\CygWin\home\%NOMBRE DE USUARIO%ac:\Usuario\%NOMBRE DE USUARIO%. Parece funcionar bien (¿alguien sabe acerca de algún problema con este método?).

Gracias a @user1147688 (arriba) por sus ideas y el enlace a la solución desde unpregunta similar.

Respuesta2

Para mí, el problema no se debió a una variable ambiental de Windows %HOME% que pude eliminar. No se incluyó ninguna variable %HOME% en el cuadro de diálogo Variables ambientales.

En cambio, pude resolver el problema en Bitvise desmarcando "Permitir variables ambientales" en la configuración avanzada. También eliminé "%HOME%" en el campoDirectorio inicial del shell del terminal, pero eso no fue suficiente por sí solo.

información relacionada