livflowproject 12일차 - ssh 트러블슈팅

주영광·2024년 11월 12일
0

livflowproject

목록 보기
15/30

db문제가 있어서 sqlite3지우고 psql오류를 잡고있는데 갑자기 ssh가 끊기고, 재연결하려고 하니

kex_exchange_identification: read: Connection reset by peer

이런 오류가 발생함

오류메시지를 해석하면

키교환 단계에서 문제가 발생하여, 원격서버가 연결을 강제로 끊음.
위와 같은 경우 여러 경우의 수가 있음

  1. 방화벽에 포트가 걸린다.
  2. 포트포워딩이 잘못되어있다.
  3. ssh 데몬이 꺼진다.
  4. ip 충돌
  5. 서버가 꺼진경우
  6. 공유기에서 반복적인 ip 접속을 차단한 경우

위와 같은 문제로 생각이 되었음
아래와 같은 사항을 확인함

  1. 모든 컴퓨터에서 ssh접속이 안되는가
  2. 내부 ip를 이용해서도 접속이 안되는가
  3. domain은 접속이 되는가
  4. 맥주소는 같고 다른 ip(핫스팟이용)을 해도 접속이 안되는가

-> 다른 모든 컴퓨터는 정상 접속, 핫스팟 이용시 맥북도 이용가능
기존 ip 사용시 모든 곳에 접속 불가

내 상황은 다음과 같음

  • ssh를 접속하면 키교환단계에 문제가 생겨 원격접속을 끊음
  • 맥북에서는 ssh, domain모든 관련 서버에 접속이 안됨
  • 핫스팟을 켜서 다른 공인ip로 잡석하면 접속이됨
  • 따라서 맥북 주소자체가 문제가 아니라 내 공인ip가 서버에 접속이 안되는 결론이 나옴

이제 해결방법을 찾기 위해 어디서 끊겼는지 찾아봤음

flow는 다음과 같음

외부 클라이언트 - window공유기 - virtual box - ubuntu - nginx

이 중 어디서 막히는지를 확인해야했음

ssh 설정에서 방화벽을 꺼보고, 윈도우에서 방화벽을 꺼보고, 포트포워딩을 확인해보고, 공유기 재부팅을 해보는 등 계속 트러블슈팅을 하다가

몇가지 사항을 확인함

✘ youngjoo  ~  curl -v https://api.xxx.

Host api.livflow.co.kr:443 was resolved.
IPv6: (none)
IPv4: 59.5.15.xxx
Trying 59.5.15.xxx...
Connected to api.livflow.co.kr (59.5.15.xxx) port 443
ALPN: curl offers h2,http/1.1
(304) (OUT), TLS handshake, Client hello (1):
CAfile: /etc/ssl/cert.pem
CApath: none
서버는 살아있고, 포트와 ip주소는 정상

그래서 가능성은 ip가 연속적으로 접근을 해서 공유기에서 접근을 제한했다고 가정을 했음

그래서 연결과정에 debug를 해본 결과

OpenSSH_9.7p1, LibreSSL 3.3.6
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 21: include /etc/ssh/ssh_config.d/ matched no files
debug1: /etc/ssh/ssh_config line 54: Applying options for

debug2: resolve_canonicalize: hostname 59.5.15.xxx is address
debug3: expanded UserKnownHostsFile '/.ssh/known_hosts' -> '/Users/youngjoo/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '/.ssh/known_hosts2' -> '/Users/youngjoo/.ssh/known_hosts2'
debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling
debug3: channel_clear_timeouts: clearing
debug3: ssh_connect_direct: entering
debug1: Connecting to 59.5.15.xxx [59.5.15.xxx] port 2221.
debug3: set_sock_tos: set socket 3 IP_TOS 0x48
debug1: Connection established.
debug1: identity file /Users/youngjoo/Desktop/id_rsa_livflow.pem type -1
debug1: identity file /Users/youngjoo/Desktop/id_rsa_livflow.pem-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_9.7

서버에 연결은 됬지만 인증단계에서 문제가 발생한걸 확인할 수 있음

따라서 문제는

윈도우 공유기를 통과해서 다음 단계에서 문제가 발생했다는걸 알게됨

flow는 이렇게 되어있음

외부 클라이언트 - window공유기 - virtual box -|- ubuntu - nginx

우분투에 들어가기 직전이라는걸 확인함

실제로 저기서 막힌다면 흐름상 내 ip로 도메인과 ssh에 들어갈 수 없음

stack overflow에서는 정확히 이 오류에 대해

  1. The SSH server process malfunctioned (crashed), or perhaps it detected some serious issue causing it to exit immediately.
  2. Some firewall is interfering with connections to the ssh server.
    이렇게 두가지 의견을 제시함

방화벽은 꺼두었으니 심각한 문제가 있어 연결이 끊겼다고 전제를 하고 문제를 풀기 시작했음

pem키는 등록되어있고, ssh log를 살펴보니 로그에 접속 오류가 안잡힘

즉, 우분투 서버에 들어와서 ssh에 도달하지 못했다는걸 파악함

그럼 제일 큰 가능성은 ssh에 문제가 있거나, ssh설정에서 내 ip에 대한 접근을 막고 있다고 판단했음

여기서 제일 걸리는건 내 ip만 접속이 안된다는 것.

그래서 설정에서 ip, 포트, pem, 권한 등등 모든 설정을 바꾸었지만 문제가 해결되지 않았음

그래서 ssh를 재설치 해본 결과

"""
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다... 완료
상태 정보를 읽는 중입니다... 완료
몇몇 패키지를 설치할 수 없습니다. 요청한 상황이 불가능할 수도 있고,
불안정 배포판을 사용해서 일부 필요한 패키지를 아직 만들지 않았거나,
아직 Incoming에서 나오지 않은 경우일 수도 있습니다.
이 상황을 해결하는데 다음 정보가 도움이 될 수도 있습니다:

다음 패키지의 의존성이 맞지 않습니다:
openssh-server : 의존: openssh-client (= 1:9.6p1-3ubuntu13.5) 하지만 1:9.6p1-3ubuntu13.7 패키지를 설치할 것입니다
의존: openssh-sftp-server 하지만 %s 패키지를 설치하지 않을 것입니다
추천: ncurses-term 하지만 %s 패키지를 설치하지 않을 것입니다
E: 문제를 바로잡을 수 없습니다. 망가진 고정 패키지가 있습니다.
"""

이유는 알 수 없으나 망가진 고정패키지가 발견됨

이 부분에 대해 검색을 해보아도 ssh가 아니라 다양한 부분에서 패키지의 의존성 문제가 발견되어서

그냥 새로 설치함.

그 뒤 다시 접속이되어 문제를 해결했음

profile
오직 실력만이 나를 증명한다.

0개의 댓글