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가 ListenAddress 를 0.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.