Ssh 갑자기 안됨 - Ssh gabjagi andoem

가끔 SSH 원격서버를 포맷하거나 설정을 건드렸을 때, 아래와 에러가 나면서 SSH 원격접속이 불가능한 경우가 있다. 

해결방법은 간단하다. 아래 파일에서 해당 원격서버의 부분을 지워주고 저장하면 된다.

  • Windows: C:\Users\유저명\.ssh\known_hosts
  • Linux: ~/.ssh/known_hosts

만약 SSH 원격서버의 IP가 165.244.190.39 라고 한다면, 해당 부분의 줄을 삭제하고 저장해주면 된다.

IT 계통에 몸담으려 노력하고 첫 일이 유지보수 여서 그런지 

서버에 접속이 안되었을 때 접속 원인 찾느라 

얼마나 머리가 아프던지 확인했던 내용만 한번 모아서 남겨봅니다 

서버는 linux를 기준으로 적었습니다

1. IP 확인

  처음에 IP 문제로 접속에 이상 없을거라 생각했었는데 잊을 때쯤 한 번씩 나오더군요 

2. hosts.* 파일들 

/etc/hosts.allow -접속할 IP 지정 /etc/hosts.deny -차단할 IP 지정

   접속 IP를 지정을 해서 접속이 안되는 경우가 많다

   hosts.deny. 는 웬만하면 내용 제일 하단에 [ALL:ALL] 을 추가하여 접속자 전체 차단하는 정책으로 되어있다

3.  services 파일 

vi /etc/services ssh 22/tcp # The Secure Shell (SSH) Protocol ssh 22/udp # The Secure Shell (SSH) Protocol

  이 파일 내용 중 ssh 포트를 바꾸겠다고 22번 포트를 주석 처리하는 경우가 있다

4.  ssh_config 파일

cd /etc/ssh vi ssh_config # Port 22

  ssh_config 내용중 포트 번호를 바꾸고 서비스 재기동을 안 시키거나 방호벽에서 바뀐 포트에 대해 허용 안 한 경우가

  있다

5.  방화벽 여부

systemctl stop firewalld.service --- 방화벽 내리기 firewall-cmd --list-all --- 방화벽 리스트 확인 services: dhcpv6-client ssh --- 리스트중 ssh 허용 확인

 ssh가 방화벽에 웬만하면 다 허용이 되어 있지만 수많은 이유 중에 하나로 닫힌 경우가 있어 확인을 했었습니다

문제의 발단

서버실에 서버컴퓨터가 스위치로 다섯대가 연결되어있고 불쌍한 대학원생은 ssh로 서버에서 작업하던 도중 갑자기 몇대가 ssh가 접속이 안되는 현상이 발견된다.

문제 대응


슬랙 서버채널에 들어가 바로 해당 상황을 공유드렸고 먼저 가서 도대체 왜! 연결이 안되는지 살펴보기로 했다.

전산실에 전화했으나 전산실에서는 외부ip ping 잘 가니깐 우리 문제 아니니깐 잘 확인해보세요. 라는 답변이 들려왔고 식은땀이 흘렀다.


얼른 슬랙에 현재 상황에 대해 정리해서 올렸고 땀을 뻘뻘 흘리며 서버 뒷면 앞면을 살펴보기로 했다.

혹시나 선이 잘못 꽂혀있었는지.. hdmi가 빼져있었는지 확인해보았으나 다 정상이었고 멘탈이 스르륵 녹아 내리기 시작했다.

ifconfig는 루프백만 돌고 있는 상황이었다. 인터넷 자체가 안되는 것이었다.

연결이 되는 서버에 스위치로 연결시켜서 확인해보니 이 서버는 eno1로 이더넷이 물려있었다. 잘되던 컴퓨터가 왜 갑자기 안되는 것일까?

문제 해결

참으로 원망스러웠으나 해결을 하지 못하면 미래에 큰일이 날 것 같은 대학원생은 구글링을 엄청 하기 시작했다.

금요일에 문제가 터져서 당연히 주말에 나와야겠다고 생각은 하였으나 주말에 번아웃이와 월요일날 확인을 하게 되었다. 참으로 게으른 대학원생이다.

ifconfig -a 를 사용해서 확인을 해본 결과 이더넷 카드는 잡혀있었고 /etc/network/interface에 파일이 있는지 확인을 하러갔다.

서버는 ubuntu 18.04ts이었고 /etc/netplan에 파일들이 있었다. 17.10 부터는 netplan을 사용한다고 하니 참고하기로 하자.

yml 파일에 들어가서 초기화되었던 건지, 아니면 무엇이 수정되었는지 모르겠지만 dhcp로 사설 ip를 제공해주는 거로 수정해주고

netplan apply를 해줘서 해결했다. 참으로 다행이다.

생명연장 🌟

정리

ifconfig
로 활성화되어있는 네트워크를 확인하자.
ifconfig -a
로 비활성화 되어있지만 이더넷카드가 있는지 확인하자.

sudo vi /etc/netplan/*.yml
ubuntu 버전이 17.10 이상일 경우 이 명령어를 사용하고

sudo vi /etc/network/interfaces
그 밑일 경우는 이 명령어를 사용하자.

그런 후 dhcp를 쓰는 경우에는 문법을 잘 찾아서 true로 바꿔주거나
고정 내부 ip를 쓴다면 ip를 고정시켜주자!

안녕하세요. 가상화서버에 Centos 7 설치를 하고 ssh로 접속을 하려고 하는데 계속 안됩니다.

sshd.service 체크해보면 Active(Running) 중이고, netstat -an 으로 포트 체크해도 22번 포트 활성화 되어있습니다.

서버 자체 방화벽, selinux 모두 내렸습니다.

같은 대역대의 서버랑도 ping도 잘 되고,

서버에 접속하는 저의 데스크탑에서도 핑은 잘 됩니다.

그런데 ssh 접속을 하려는데 안되는 이유는 뭘까요..?

같은 대역대에서 telnet으로 22번 포트 연결되는지 체크해보면 시도중만 뜨고 연결이 안되네요.

서버단에서 확실하게 22번 포트 활성화되어 있는데,,

어디 부분을 체크해봐야 할까요??

ssh 접속은 아래 명령어를 사용하면 가능합니다.

$ ssh USER@IP

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 ECDSA key sent by the remote host is
SHA256:~~~~~~~~~~~~~~~~~~~~~~~
Please contact your system administrator.
Add correct host key in /Users/mac/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/mac/.ssh/known_hosts:13
ECDSA host key for xxx.x.x.x(IP addr) has changed and you have requested strict checking.
Host key verification failed.

이럴 때 당황하지 않고 간단하게 명령어를 통해 해결하는 방법을 알아보도록 하겠습니다.

1. known_hosts updated

아래 명령어를 실행해보겠습니다.

$ ssh-keygen -R xxx.x.x.x

(xxx.x.x.x : 접속하고자 하는 IP주소 입력)

실행 결과 

.ssh/known_hosts updated. 

2. 재접속 시도 

이제 다시 ssh 접속을 시도합니다. 

$ ssh USER@IP

다시 연결을 시도하면 인증 관련된 메시지가 출력되면서 연결할 것인지 물어보게 됩니다.

yes/no

yes를 입력하고 [enter] 키로 실행합니다. 

yes를 실행하면 접속되는 모습을 볼 수 있습니다. 

** 비밀번호를 물어본다면 입력하면 됩니다.
    비밀번호는 키보드를 입력해도 아무것도 출력되지 않기 때문에 그냥 비밀번호를 쭉 입력하고 [enter] 키를 누르면 됩니다. 

Toplist

최신 우편물

태그