시간 초과로 인해 모든 SSH 시도가 실패하는 이유는 무엇입니까?


22

ssh 및 관련 기술을 처음 사용하므로 기본적인 것을 이해하지 못할 가능성이 큽니다. (이것은 대신 서버 결함에 대한 질문 일 수도 있습니다.

웹 서버 (내 소유)에 ssh하려고하는데 시간 초과로 인해 연결이 설정되지 않습니다.

~ $ ssh -vvv DOMAIN.com
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/USER/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 102: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to DOMAIN.com [123.45.67.89] port 22.
debug1: connect to address IPADD port 22: Operation timed out
ssh: connect to host DOMAIN.com port 22: Operation timed out

내 첫 번째 생각은 어떻게 든 도메인을 잘못 지정했거나 내 사이트에 문제가 있다는 것입니다. 그래서 FTP를 통해 동일한 도메인에 연결하려고 시도했지만 정상적으로 작동했습니다 (사용자 이름을 묻는 메시지가 표시되었습니다).

~ $ ftp
ftp> open
(to) DOMAIN.com
Connected to DOMAIN.com.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 2 of 50 allowed.
220-Local time is now 12:47. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (DOMAIN.com:USER):

그래서 SSH를 잘못 사용하고 있다고 생각했습니다. 이 튜토리얼 비디오를 보기 시작했습니다 . 약 1 분이 ssh will@supercars.com지나면 사용자 이름 프롬프트가 표시되지만 위와 동일한 시간 초과가 발생합니다. 그런 다음 ssh google.com동일한 작업 을 시도했습니다 . ssh localhost반면에 잘 작동합니다. 따라서 문제는 네트워크를 통한 SSH 요청과 관련이있는 것 같습니다.

나의 다음 생각은 그것이 방화벽 문제일지도 모른다는 것이었다. 이 컴퓨터에 Sophos가 설치되어 있지만 관리자에 따르면 나가는 SSH 요청을 "막아서는 안됩니다".

왜 이런 일이 일어나고 있는지 알아낼 수 있습니까?


8
그것은 당신이 우리에게 제공하는 라이브 IP 주소입니다. 보안되지 않은 FTP 연결이 실행 중입니다. 좋은 생각이 아닐 수도 있습니다. 또한 포트 22에서 실행중인 것이 없으므로 문제의 원인이라고 생각합니다. 당신은 아무것도 ssh 할 수 없으며 서버는 sshd를 실행해야합니다. 이것은 보이지 않습니다. 서버 인 경우 ssh를 켜고 ftp를 끄십시오. ftp가 실행되면 ssh를 통해 ftp를 수행 할 수 있습니다.
marinus

3
삭제할 필요가 없습니다. IP를 편집하고 SE에게 편집 기록을 제거하도록 요청했습니다. 그렇게하면 당신에게 대답 한 사람은 평판을 잃지 않습니다.
terdon

답변:


24

이 오류 메시지는 연결중인 서버가 포트 22의 SSH 연결 시도에 응답하지 않음을 의미합니다. 그 이유는 다음 세 가지입니다.

  1. 머신에서 SSH 서버를 실행하고 있지 않습니다. 당신은 그것을 ssh 할 수 있도록 설치해야합니다.
  2. 해당 시스템에서 비표준 포트에서 SSH 서버를 실행하고 있습니다. 어떤 포트에서 실행 중인지 알아 내야합니다. 포트 2222에 있다고 가정하면을 실행하십시오 ssh -p 2222 hostname.
  3. 해당 머신에서 SSH 서버를 실행 중이며 연결하려는 포트를 사용하지만 머신에 연결할 수없는 방화벽이 있습니다. 방화벽을 변경하는 방법을 알아 내거나 다른 호스트에서 ssh를 허용해야 할 수도 있습니다.

편집 : 의견에서 (올바로) 지적했듯이 세 번째는 확실히 그렇습니다. 다른 두 개는 클라이언트의 연결 시도시 서버가 TCP "재설정"패키지를 다시 보내서 시간 초과가 아니라 "연결 거부"오류 메시지를 발생시킵니다. 다른 두 경우도 해당 될 수 있지만, 계속 진행하기 전에 세 번째를 먼저 수정해야합니다.


6
설치되지 않았거나 다른 포트에서 실행중인 경우 연결 거부 메시지가 표시됩니다.
Hut8

2
@ Hut8 : 그렇습니다. 세 가지 가능성 중에서 세 번째 가능성 (방화벽) 만 시간 초과로 이어질 수 있습니다.
R ..

우분투 : sudo ufw allow 22; 그때 당신의 일을하십시오; sudo ufw 거부 22. digitalocean.com/community/tutorials/…
다니엘

선택한 경로 ssh와 다른 서비스 가 다를 수 있기 때문에 다른 서비스에 액세스 할 수 있더라도 서버에 액세스 할 수없는 네 번째 가능성이 있다고 생각합니다 (인터넷 라우팅 문제, 사이에 뭔가가 있습니다 ...) .
Alexis Wilke

3

SSH 포트 22에 연결할 수 있는지 여부는 telnet 명령으로 확인하십시오. 연결할 수없는 경우 확인하십시오. 먼저 포트 번호에서 연결할 수 있어야합니다. 서버에 22.

기본적으로 SSH 포트는 22입니다. 그러나 다른 포트를 구성한 경우 22 대신 해당 포트를 사용하십시오.

텔넷 <서버의 IP / URL> <포트>

예 : telnet domain.com 22


2
이것은 동일하게 시간이 초과 될 것입니다 (그렇지 않으면 ssh -v로그에 시간이 초과되었다고 말하는 것이 아니라 연결에 성공한 것으로 표시됩니다)
Wouter Verhelst

@Wouter Verhelst 네, 설명을위한 thnx
AVJ

어떤 포트가 구성되어 있는지 어떻게 확인할 수 있습니까? 새 포트를 구성 하시겠습니까?
Yonatan Simson

@YonatanSimson, 액세스 권한이 있다고 가정하면 sudo netstat -a64np( netstat)를 사용 하여 sshd서버 (마지막 열)를 검색 할 수 있습니다 . 액세스 권한이 없으면을 사용해보십시오 nmap.
Alexis Wilke
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.