원격 콘솔(SSH)의 CygWin 터미널이 올바른 $HOME 경로에서 시작되지 않습니다.

원격 콘솔(SSH)의 CygWin 터미널이 올바른 $HOME 경로에서 시작되지 않습니다.

나는 설치했다CygWinv1.7.28.

문제가 빨리 설명됨: 기본적으로 원격 로그인을 통해 CygWin 쉘을 시작하면$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

그건:CygWin내 Windows 홈 디렉터리에서 셸을 시작했기 때문에 개인 설정이 없습니다(.bashrc,.bash_profile... 등) 별칭과 같습니다.

어쩌면 이 이상한 동작은 일종의 누락된 환경 변수(GUI에는 있지만 원격 콘솔에는 없음)로 인해 발생했을 수도 있지만 해당 변수를 찾을 수 없었습니다.
원격 콘솔을 시작하려면 어떻게 해야 합니까?배시 쉘포함 된CygWin어디에 있어야 합니까?

  • 편집: 요청 시 추가 데이터는 다음과 같습니다.

로컬 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를 읽습니다.CygWin쉘을 시작할 때. 해당 정보는 현재 삭제되었습니다.

  • 편집 3: 내 테스트는 Telnet이 아닌 SSH 원격 로그인에서만 수행되었습니다. 그래서 문제가 발생했습니다. 정확히 Bitvise SSH 서버의 일부 동작에서 발생했습니다(아래 응답 읽기).

답변1

몇 마디로 문제를 설명하면 다음과 같습니다.Bitvise SSH 서버(Windows) (아마도 비논리적이며 필요하지 않은 것 같음) 환경 변수를 추가합니다.%집%그것은 다음과 같다%HOMEPATH%.

솔루션: Bitvise SSH 서버가 모든 SSH 클라이언트에 추가하는 환경 변수를 관리할 수 있는 가능성(퍼티, 클래식 GNU 명령줄SSH... 등). 내가 조사한 한 프로그램에는 이 기능이 없습니다. 계속 검색하겠습니다.

해결 방법:

  1. 를 불러배시 쉘를 통해.cmd가장 먼저 삭제하는 파일%집%환경 변수. 다음과 같은 것 :

    @ set 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\홈\%USERNAME%에게c:\사용자\%USERNAME%. 제대로 작동하는 것 같습니다(이 방법에 문제가 있는지 아는 사람이 있습니까?).

아이디어와 솔루션 링크를 제공한 @user1147688(위)에게 감사드립니다.비슷한 질문.

답변2

저에게는 문제가 제가 삭제할 수 있었던 Windows 환경 변수 %HOME%로 인한 것이 아니었습니다. 환경 변수 대화 상자에 %HOME% 변수가 나열되지 않았습니다.

대신 고급 설정에서 "환경 변수 허용"을 체크 해제하여 Bitvise에서 문제를 해결할 수 있었습니다. 필드에서 "%HOME%"도 삭제했습니다.초기 터미널 쉘 디렉토리, 그러나 그것만으로는 충분하지 않았습니다.

관련 정보