🚨에러노트

[Solved][ubuntu] ssh 접속 time out & no connect 에러 & 해결

디카페인라떼 2022. 10. 17. 22:04
문제상황

서버 배포를 하고 확인을 하던 중 에러가 있어 고치려고 하다가 ec2 인스턴스를 재부팅하였다.

탄력적 IP를 연결하지 않았어서 재부팅 시 IP가 변경이 되었고 , 다시는 이런일이 없도록 탄력적 IP를 받아 새로 연결해주었다. 그리고나서 Ubuntu에 접속하려고 하니 접속이 되지 않았다.

 

인터넷이 느리다고 하기엔 너어무 긴 시간동안 반응조차 없었다...

이상태로 에러 메세지 조차도 안떴다 .. 

 

 

일단은 어떠한 원리로 ssh에 접속하고 어느 부분에서 문제가 생겼는지 가설을 세워보자 

 


  1. 사용자가 서버에 원격접속하기 위해 연결을 설정하느 프로세스를 시작한다.
    • 기본적으로 22포트를 사용하여 통신
    • 서버는 사용자에게 서버자 지원하는 프로토콜의 버전을 응답으로 보냄.
    • 사용자는 서버가 지원하는 프로토콜의 버전 중 자신과 일치하는 것이 있다면 연결을 지속 (버전 교환)
  2. 서버는 자신의 공개키를 사용자에게 전송한다
    • 서버는 사용자로부터 SSH 접속 요청을 받고 자신의 공개키를 사용자에게 전송
    •  사용자는 서버로부터 받은 공개키를 로컬에 저장
    • 사용자는 원격 접속하는 서버들의 공개키를 로컬 사용자 홈 디렉터리의 .ssh 경로 내의 known_hosts 파일에 저장
  3. 사용자와 서버는 여러 매개변수들을 주고 받으며 보안 채널을 확립
    • 사용자 : 올바른 서버인지 확인
    • 암호화된 통신을 위한 세션키 생성 - 대칭키 생성
    • 서버 : 서버에 접근할 수 있는 사용자인지
  4. 사용자가 서버에 원격접속 성공

 


Ubuntu가 바뀌는 이벤트가 발생했을 때 2에서 나와있듯이 서버가 보낸 공개키가 변경되게 된다. 

보통은 자동으로 발급이되어 저장이 되지만 나같은 경우에는 내가 갑자기 Ubuntu를 변경하게된 상황이라 자동으로 변경이 되지않아 아예 접속이 안되고 있었던 것이다.

 

 

해결방법

그렇다면 공개키를 다시 받으면 될 일이다 ^^

 

일단 로컬에 저장된 공개키를 찾아보자

 

※ 클라이언트 사용자의 known_hosts 경로(Default)

<Linux>
일반계정  : /home/USER/.ssh/known_hosts
root 계정 : /root/.ssh/known_hosts		

<Window>
사용자    : %USERNAME%\.ssh\known_hosts

 

👉 메모장으로 연결하여 키고 해당 아이피에 있는 host key를 삭제해주고 다시 접속 시도를 해보면 

 

👉ssh 에서 누군가 보안키를 건들였을지도 모른다면서 경고가 뜬다!!

아가 아무것도 없었던 것에 비하면 이러한 메세지라도 나오니 기쁘다...

 

좀더 내려가보면 SHA로 시작하는 암호가 있는데

이게 서버가 보내준 암호 ssh 키이다

그리고

Please contact your system administrator.
Add correct host key in KNOWN_HOSTS to get rid of this message.

 

혹시라도 디렉토리를 못찾을까봐 친절하게 위치도 알려준다.

 

해당 암호키를 넣고 다시 접속을 하면 

이제는 접속이 잘되는 걸 확인할 수 있다.