[server] ssh는 Cygwin에서 잘못된 홈 디렉토리를 사용합니다.

$ ssh usaname@login.somehost.no

Could not create directory'/cygdrive/c/Documents and Settings/vidar kongsli/.ssh'.
The authenticity of host 'login.somehost.no (...)' can't be established.
RSA key fingerprint is ....
Are you sure you want to continue connecting (yes/no)? no
Host key verification failed.

$ set | grep HOME

HOME=/cygdrive/d/home/vidar
HOMEDRIVE=C:
HOMEPATH=/cygdrive/d/home/vidar

$ ls ~/.ssh

id_rsa  id_rsa.pub

ssh가 ~ / .ssh를 찾을 때 $ HOME 환경 변수를 사용하지 않는 이유는 무엇입니까?

(편집 : 고정 형식)



답변

를보십시오 /etc/passwd. 항목이 예상 홈 디렉토리와 일치하는지 확인하십시오. 사용자 입력을위한 두 번째에서 마지막 필드입니다.


답변

귀하의 경우 $HOME변수가 설정되어 있지만, SSH는 그것을 인식하지 못합니다,이 라인을 넣어 /etc/nsswitch.conf:

db_home: /%H

그러면 / etc / passwd 파일이 없어도 Cygwin 홈 디렉토리가 설정됩니다.


답변

/etc/nsswitch.conf에서 :

db_home:  windows

db_home 설정을 참조하십시오 . 이것은 Cygwin에게 Windows %USERPROFILE%디렉토리를 Cygwin $ HOME으로 사용하도록 지시 합니다.

예를 들어 git (GitHub Enterprise)와 SSH간에 동일한 SSH 키를 다양한 로컬 Unix / Linux 시스템에 공유하려는 경우에 필요합니다.

bash에서 설정을 올바르게 반영 %HOME%하더라도 OS 수준에서 설정이 작동하지 않았습니다 $HOME.

원래 질문에서 SSH가 Vidar의 이전 버전의 Windows 인 Windows 홈 디렉토리를 업데이트하려고한다는 것을 알 수 있습니다 C:\Documents and Settings\vidar kongsli. 현재 버전 (7+, 나는 생각합니다)에서 동등한 것은 C:\Users\%USERNAME%(또는 Windows가 C :,에 설치되지 않은 경우 %SystemDrive%\Users\%USERNAME%)입니다.


답변

변수가 HOME내보내 집니까? 시도 : export HOME다음 ssh다시.


답변

설정 db_home에서 /etc/nsswitch.conf당신의 가정에 대한 경로. MSYS2에서 권장 하는 방법 입니다.

HOME환경 변수를 추가해도 작동합니다 .

Git-for-Windows에는 envin이 포함되어 있으며 bash 변수를 db_home읽어야 HOME하지만 신뢰할 수없습니다 .


답변