Cygwin SSH 서버가 연결을 수락하지 않습니다


14

방금 cygwin을 사용하여 Windows 7 시스템에서 SSH 서버 (OpenSSH)를 설정했으며 Windows Vista 시스템에서 PuTTY를 사용하여 SSH 서버에 연결하려고하지만 연결 시간이 계속 초과됩니다. Wireshark가있는 Win 7 컴퓨터의 네트워크 활동을 확인한 결과 Win 7 컴퓨터의 포트 22에서 TCP SYN을 수신하고 있지만 ssh 서버가 응답하지 않는 것 같습니다. sshd가 사용하도록 구성된 포트 번호를 확인하고 방화벽 규칙을 확인하고 localhost를 ssh 할 수 있는지 확인했습니다. 이 문제를 해결하는 방법을 전혀 모릅니다.


방화벽을 다시 확인하거나이 측면을 자세히 설명해야합니다.
jjlin

답변:


23

Windows 방화벽이 실행 중일 수 있습니다. 열기 : 제어판-> Windows 방화벽-> Windows 방화벽을 통한 프로그램 또는 기능 허용

"설정 변경"버튼을 클릭 한 다음 "다른 프로그램 허용 ..."버튼을 클릭하십시오. SSHD가 목록에 없을 수도 있으므로 "찾아보기 ..."버튼을 사용하여 바이너리를 찾고 "열기"를 클릭 한 다음 "추가"를 클릭하십시오. 내 C : \ cygwin \ usr \ sbin \ sshd.exe에있었습니다

어딘가에서 사용할 "네트워크 위치 유형 ..."을 결정할 수 있습니다. 나는 개인을 확인하고 공개하지 않은 채로 내 방을 떠났습니다. 이제 원격으로 로그인 할 수 있습니다.


Frank의 대답에 더하여 홈 네트워크의 컴퓨터에 개인 정보 보호 VPN을 설치할 때도 동일한 문제가 발생했습니다. VPN을 사용하면 컴퓨터가 공용 네트워크에서 sshd와 연결 되었기 때문입니다. 이 문제를 해결하기 위해 공개 위치는 물론 개인용 Windows 방화벽을 통해 sshd를 허용해야했습니다.
James Hirschorn

5

sshd_config가 ListenAddress0.0.0.0 또는 127.0.0.1 로 지정 합니까 ?

그것의 경우 0.0.0.0 하거나 주석, 당신은 다른 컴퓨터에서, 즉 외부 컴퓨터에서 연결할 수 있습니다.

그것의 경우 127.0.0.1을 (또는 다른 인 127.0.0.x의 수), 다음 그것은 단지 로컬 호스트에서 수신 대기, 그리고 당신은 단지 동일한 시스템에서 로그인 할 수 있습니다. 외부 머신이 거부되었습니다.


2
주석 처리되었습니다.
Surma

1

Windows 방화벽으로 엉망이 된 후에는 결국 /etc/hosts.allow 파일을 통해 Cygwin 자체의 내 서브넷에 연결해야한다는 것을 알았습니다.

첫 번째 규칙 인이 줄 (내 서브넷 사용)이 문제를 해결했습니다.

ALL : 192.168.0.0/24 : 허용


1
hosts.allow 또는 hosts.deny에 문제가 발생해도 연결 시간이 초과되지 않습니다. SSH 서버가 연결을 수락 한 다음 인증 프로세스 중에 연결을 끊습니다.
Kenster 2016 년

@Kenster hosts.allow 및 hosts.deny는 TCP 수준에서 작동합니다. SSH 서버에 도달하기 전에 계층 4에서 차단되므로 SSH 서버에 연결할 수 없습니다.
mtak

@mtak 아니요, 사실이 아닙니다. hosts.allow 및 hosts.deny는 TCP Wrappers의 구성 파일입니다 . 서버 프로그램 (이 경우 sshd)은 TCP 연결을 수락하고 원격 엔드 포인트의 IP 주소를 가져온 다음 TCP 래퍼를 호출하여 클라이언트가 허용되는지 확인해야합니다. libwrap이 no를 표시하면 서버는 일반적으로 연결을 끊습니다.
Kenster 2016 년

예를 들어 sshd.c를 참조하십시오 . LIBWRAP ifdef를 찾으십시오. 다음은 sshd가 호출 하는 hosts_access 함수 입니다. 또한 최신 버전의 sshd.c 는 libwrap 지원을 제거합니다.
Kenster 2016 년

@ Kenster, 내 나쁜, 당신 말이 맞아요. 나는 그것을 시도하고 다음과 같은 오류가 발생 ssh_exchange_identification: Connection closed by remote host합니다. SU :)의 좋은 날
mtak

1

나에게 문제는 /var/empty파일의 소유권이 잘못되었습니다 . 를 사용하여 sshd를 디버그 모드로 설정 한 후에 문제가 명백해졌습니다 /usr/sbin/sshd.exe -D -dd. 나는 그것을 수정해야했다.

chown [user]:[group] /var/empty

ls -la /var디렉토리 에서 사용자 및 그룹을 가져 왔습니다 (다른 파일과 일치). 자세한 정보는 여기를 참조하십시오 : https://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_req_cygwin_ssh.htm#EMBSC340


지적 해 주셔서 감사합니다sshd -D -dd
John Oxley

0

7 바이러스 백신이 포트 22를 차단하지 않는지 확인하십시오. 또한 Windows 서비스 패널로 이동하여 CYGWINsshd를 검색하여 활성화하십시오. 로그온을 설정하여 상자를 찾아서 확인하십시오.

그러면 문제가 해결 될 것입니다 : user @ mymachine ~ $ net start sshd 시스템 오류 1069가 발생했습니다.

로그온 실패로 인해 서비스가 시작되지 않았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.