수색…


개인 키가 허용되지 않음 (OpenSSH 클라이언트 디버그)

기본적으로 대부분의 정보는 사용자에게 표시되지 않습니다. -v 스위치를 사용하여 연결 시도에 대한 자세한 로그를 얻을 수 있습니다. 일반적으로 문제가 예상 한 것과 다른 이유를 보여줌으로써 문제를 정확히 찾아냅니다.

ssh (또는 sftpscp 와 같은 다른 OpenSSH 클라이언트)를 사용하여 example.com 서버에 연결 example.com 서버에서 개인 키를 허용하지 않고 서버가 암호를 묻거나 연결을 거부한다고 가정 해 보겠습니다.

$ ssh example.com
[email protected]'s password: 

-vvv 스위치를 사용하여 ssh 를 실행하면 모든 디버그 메시지가 기록됩니다. 그것은 많은 정보가 될 것입니다,하지만 얼마 후, 그것을 이해하는 것은 매우 쉽습니다 :

$ ssh -vvv example.com

가장 일반적인 문제는 키가 예상 위치에 있지 않다는 것입니다. 누락 된 파일에 대해 불평하는 비슷한 줄이 나타날 것으로 예상 할 수 있습니다. 파일이 실제로 읽혔는지 확인하는 것이 좋습니다.

debug1: identity file /home/username/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/username/.ssh/id_dsa-cert type -1

우리는 인증 부분을 계속할 수 있습니다. 서버 구성에 대한. 제점으로 인해 키가 제공되지만 거부 될 수 있습니다. 로그는 어떻게 든 다음과 같이 보일 수 있습니다.

debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: username@localhost
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password

원격 호스트 식별 정보가 변경되었습니다!

ssh 사용하는 일반적인 오류는 다음과 같은 오류를 보는 것입니다.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:L5ri/Xdgpuals893ej1z5F1wlg1n2YNeBf/tsABX+QQ.
Please contact your system administrator.
Add correct host key in /Users/username/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/username/.ssh/known_hosts:12
RSA host key for *IP address* has changed and you have requested strict checking.
Host key verification failed.

이는 이전에 동일한 서버에 연결했고 다른 호스트 키를 사용하여 식별되었음을 의미합니다. 서버 키를 변경했거나 서버를 다시 설치했거나 서버 관리자가 변경 사항을 알린 경우 일반적으로 이전 키를 제거하고 ssh 가 새 키를 저장하도록합니다.

이전 키는 ssh-keygen 사용하여 투명하게 제거 할 수 있습니다.

ssh-keygen -R *IP address*

다음 연결은 새 지문을 확인하도록 요청해야합니다.

ssh192.168.0.128
The authenticity of host '192.168.0.128 (192.168.0.128)' can't be established.
ECDSA key fingerprint is SHA256:L5ri/Xdgpuals893ej1z5F1wlg1n2YNeBf/tsABX+QQ.
Are you sure you want to continue connecting (yes/no)? 

위의 내용을 잘 모르는 경우 서버 관리자에게 문의하여 모든 것이 정상인지 확인하는 것이 가장 좋습니다. 그렇지 않은 경우 잠재적 공격자는 인증 정보와 전송 된 모든 데이터를 모두 얻을 수 있습니다.

연결이 거부되었습니다.

클라이언트가 원격 서버 호스트에 연결 요청을 보내고 원격 호스트가 요청을 수락하지 않는다고 응답하면 "연결 거부 됨"오류가 발생합니다. "연결 거부 됨"오류는 컴퓨터가 요청 된 IP 주소 및 포트에 대한 연결을 수락하지 않는다는 것을 의미합니다.

"연결이 거부되었습니다"는 연결 요청을 차단하는 방화벽 때문에 발생할 수 있습니다. 특정 엔드 포인트에 대한 연결을 차단하도록 구성된 방화벽은 연결 요청을 삭제하도록 설정할 수 있습니다.이 경우 클라이언트는 결코 응답을받지 못하고 결국 시간 초과됩니다. 또는 방화벽이 거절 응답으로 연결 연결 요청에 응답 할 수 있습니다.

방화벽과는 별도로 SSH의 경우 "연결 거부"에는 몇 가지 원인이있을 수 있습니다.

  • 잘못된 포트 번호를 사용하여 연결할 수 있습니다. SSH의 표준 포트 번호는 22이지만 일부 사용자는 다른 포트에서 ssh 서비스를 실행하여 무단 액세스 시도를 방지합니다.

  • 잘못된 컴퓨터에 연결하려고 할 수 있습니다. 호스트 이름이나 IP 주소를 잘못 입력했을 수 있습니다. 또는 컴퓨터가 변경된 동적 할당 주소를 사용 중일 수 있습니다.

  • ssh 서버 프로세스가 실행되고 있지 않을 수 있습니다.

    • 시스템이 시작되는 중이면 아직 시작되지 않았을 수 있습니다.
    • 그것은 아마도 비활성화되었을 수 있습니다; 예 : 시스템이 단일 사용자 모드 인 경우.
    • 잘못 구성되어 시작되지 못할 수 있습니다.
    • 컴퓨터에 SSH 서버가 설정되지 않았을 수 있습니다. MS Windows 시스템은 일반적으로 SSH 서버를 포함하지 않습니다. 일부 Linux 시스템에서 SSH 서버는 선택적 구성 요소 일 수 있습니다. OS X에는 SSH 서버가 포함되어 있지만 기본적으로 비활성화되어 있습니다.
  • SSH 서버 프로세스가 연결하려는 특정 IP 인터페이스의 연결을 수신하지 않을 수 있습니다. 대부분의 컴퓨터에는 최소한 두 개의 IP 인터페이스, "localhost"인터페이스 및 하나 이상의 네트워크 인터페이스가 있습니다. 각 활성 인터페이스에는 연관된 IP 주소가 있습니다. SSH 서버는 일반적으로 모든 IP 인터페이스에서 연결을 허용하도록 구성됩니다. 그러나 특정 인터페이스에서만 연결을 허용하도록 구성 할 수 있습니다. 이 경우 컴퓨터는 연결 요청에 올바른 포트가 있어도 SSH 서버가 수신하지 않는 IP 주소로의 연결을 거부합니다.

  • 서버에는 동일한 포트에 대한 백 로그 연결 요청이있을 수 있습니다. 드문 경우이지만 호스트가 처리 할 수있는 것보다 빠르게 연결 요청을받는 경우 호스트는 결국 새 연결 요청을 거부하기 시작합니다.

그냥 연결 요청을 수락하지거야 - 옆으로 방화벽은 "연결이 거부"그 참고 원격 컴퓨터와 통신하는 것을 의미한다.

연결 시간이 초과되었습니다

원격 시스템이 클라이언트의 TCP / IP 연결 열기 시도에 응답하지 않으면 "연결 시간 초과"오류가 발생합니다. 가장 일반적인 원인은 다음과 같습니다.

  • 방화벽이 사용중인 포트에서 연결 시도를 차단하고 있습니다 :
    • 방화벽은 아웃 바운드 연결을 차단하거나 서버 쪽에서 인바운드 연결을 차단하거나 경로의 다른 곳에서 차단하는 등 클라이언트 측에있을 수 있습니다.
    • 루트 문제는 잘못된 포트 번호를 사용하고있는 것일 수 있습니다.
  • 연결하려는 호스트가 오프라인 일 수 있습니다.
  • 클라이언트와 서버 간의 네트워크 일부가 다운되거나 중단 될 수 있습니다.
  • 네트워크 라우팅 문제가있을 수 있습니다.

연결 시간 제한의 근본 원인을 진단하는 것은 어렵습니다.

ssh_exchange_identification : 읽기 : 피어에 의한 연결 재설정

이 오류 메시지는 OpenSSH ssh 클라이언트에서 생성 될 수 있습니다. 이는 클라이언트와 서버 간의 TCP 연결이 승인 된 직후 서버에 의해 비정상적으로 닫혔다는 것을 의미합니다. 이 메시지의 일반적인 이유는 다음과 같습니다.

  • SSH 서버 프로세스가 오작동하고 있습니다 (예 : 충돌).
  • 클라이언트와 서버 사이의 방화벽, 라우터 또는 다른 네트워크 장치가 SSH 연결을 방해합니다.

오류 메시지의 문구는 구체적으로 어떤 일이 일어 났는지 나타냅니다.

ssh_exchange_identification : 1. SSH 클라이언트가 SSH 서버에 연결 한 후, SSH 프로토콜 시작의 첫 번째 단계는 서버가 소프트웨어 버전을 클라이언트에 전송하는 것입니다. "ssh_exchange_identification"이 포함 된 오류는 클라이언트가 서버의 소프트웨어 버전을 기다리는 동안 TCP 연결을 만든 후 즉시 오류가 발생했음을 나타냅니다.

연결 재설정 : 연결 재설정은 TCP 연결이 "비정상적으로 종료되었습니다"를 의미합니다. TCP 연결 중 하나를 수행하는 소프트웨어 프로세스가 손상되면이 문제가 발생할 수 있습니다. TCP 연결을 차단하는 수단으로 연결 재설정을 사용하도록 네트워크 방화벽을 구성 할 수 있습니다.

by peer 는 TCP 연결이 연결의 "상대방"에서 종료되었음을 의미합니다. 이 경우 "상대방"은 원격 SSH 서버입니다.

이 오류는 어떤 종류의 인증 실패도 나타내지 않습니다. 서버는 TCP 연결을 수락 한 후 바로 닫았습니다. 클라이언트와 서버는 아직 데이터를 전혀 교환하지 않았습니다. 서버가 아직 클라이언트에 호스트 키를 보내지 않았으며 클라이언트가 아직 서버 인증을 시도하지 않았습니다.

ssh_exchange_identification : 원격 호스트에 의해 닫힌 연결

이 오류 메시지는 OpenSSH ssh 클라이언트에서 생성 될 수 있습니다. 이는 클라이언트와 서버 간의 TCP 연결이 승인 된 직후 서버에 의해 닫혔다는 것을 의미합니다. 이 메시지는 일반적으로 SSH 서버가 어떤 이유로 클라이언트의 연결을 수락하지 않도록 구성되었음을 나타냅니다.

  • 클라이언트의 IP 주소에서 연결을 거부하도록 서버를 구성 할 수 있습니다.
  • 서버는 활성 SSH 연결 수에 대한 제한으로 구성 될 수 있습니다.
  • 클라이언트가 SSH 서버가 아닌 다른 서버에 연결되었을 수 있습니다.

오류 메시지의 문구는 구체적으로 어떤 일이 일어 났는지 나타냅니다.

ssh_exchange_identification : 1. SSH 클라이언트가 SSH 서버에 연결 한 후, SSH 프로토콜 시작의 첫 번째 단계는 서버가 소프트웨어 버전을 클라이언트에 전송하는 것입니다. "ssh_exchange_identification"이 포함 된 오류는 클라이언트가 서버의 소프트웨어 버전을 기다리는 동안 TCP 연결을 만든 직후 오류가 발생했음을 나타냅니다.

Connection closed : TCP 연결이 정상적으로 종료되었음을 의미합니다. 이는 SSH 서버가 의도적으로 연결을 종료했음을 나타냅니다. 이것은 "연결 재설정"과는 달리 SSH 서버가 손상되었거나 고장 났음을 나타낼 수 있습니다.

원격 호스트 가 TCP 연결이 연결의 "다른 끝"에서 종료되었음을 의미합니다. 이 경우 "상대방"은 원격 SSH 서버입니다.

이 오류는 어떤 종류의 인증 실패도 나타내지 않습니다. 서버는 TCP 연결을 수락 한 후 바로 닫았습니다. 클라이언트와 서버는 아직 데이터를 전혀 교환하지 않았습니다. 서버가 아직 클라이언트에 호스트 키를 보내지 않았으며 클라이언트가 아직 서버 인증을 시도하지 않았습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow