Windows 8이 설치된 노트북이 있습니다. Cygwin64를 통해 이 노트북에서 Windows 2012 서버로 SSH를 설정하려고 합니다.
설명된 단계를 따랐습니다.여기.
그러나 step:을 실행하면 ssh-user-config
오류가 발생합니다.
ERROR: There is no home directory set for you in /etc/passwd.<br>
ERROR: Setting $HOME is not sufficient!
내 Cygwin64 설치 폴더에는 내가 로그인한 Windows 사용자에서 복사된 사용자가 있는 디렉토리 홈이 있습니다(이 사용자가 예쁘다고 가정).
또한 파일이 표시되지만 cygwin64/etc/passwd
해당 파일에는 내 Windows 사용자(멋진)가 존재하지 않습니다.
내가 보는 유일한 줄은 다음과 같습니다.
[computername]+sshd:*:197610:197121:[computername]\sshd,S-1-5-21-1837826546-2281981055-3577963604-1002:/var/empty:/bin/false
passwd 파일을 수동으로 추가하고 다음을 삽입해 보았습니다.
nifty:*:1:1:/home/nifty:/bin/bash/
나는 또한 다음을 추가해 보았습니다.
[computername]++sshd:*:1:1::/home/swuyts:/bin/bash
인터넷 검색을 할 때 내 마음에 떠오르는 유일한 것은 다음 명령을 실행해 보는 것입니다.
mkpasswd -l -u >> /etc/passwd
나는 이것이 Windows에 존재하는 일부 계정(예: 관리자 그룹, 시스템 계정 및 위 단계에서 생성된 cyg_server)을 추가한다는 것을 알았지만 ssh-user-config에는 도움이 되지 않습니다.
진행 방법을 설명해 줄 수 있는 사람이 있나요?
답변1
이는 일시적인 문제입니다. 스크립트 ssh-user-config
를 수정해야 합니다.
"How To Geek" 튜토리얼이 귀하의 경험과 일치하지 않는 이유는 최신 버전의 Cygwin(1.7.34)이 /etc/passwd
및를 제거하기 때문입니다. /etc/group
결국 발견했듯이 다시 생성될 수 있지만 존재하지 않는 경우 Cygwin DLL은 Windows 기본 사용자/그룹 데이터베이스를 사용합니다.공시 하다존재하는 경우 또는샘그렇지 않다면.
스크립트는 질문에 대답하기 위해 /etc/passwd
콘텐츠를 통해서만 실행할 수 있다는 오래된 가정을 합니다.awk
Cygwin은 최근 Linux에서와 유사하게 작동하여 getent(1)
파일, AD 및 SAM 간의 차이점을 추상화하는 새로운 프로그램을 얻었습니다. 스크립트에는 파일을 /etc
구문 분석하는 대신 이 도구를 사용하기 위한 패치가 필요합니다 ./etc
Cygwin 메일링 리스트에서 말했듯이,양의 온도 계수!
답변2
setup.exe
으로 업데이트하려면 다시 실행해 보세요 openssh-6.7p1-2
. 이렇게 하면 문제가 해결됩니다.
또한 문제의 원인( setup.exe
패키지를 처음 설치할 때 현재 버전 대신 "이전" 버전 선택)이 해결되었습니다.