회사 프로젝트 서버에 sftp로 접속을 하여 코드 수정중에
서버에 코드 반영이 안되기 시작하더니 계속해서 타임아웃 에러가 발생했다.
이 오류로 시간낭비를 많이 해서
같은 오류를 보는 사람들이 한시라도 빨리 해결되길 바라는 마음에 글을 적는다.
문제 발생 원인과 해결방법
크게 3가지가 있지만, 딱 두가지만 확인해보자.
- 호스트의 22번 포트가 오픈되어 있지 않을 경우
- 호스트와의 네트워크 연결 문제
- SSH 클라이언트 설정 문제
제일 먼저, ip 를 포함한 ssh 접속정보(sftp.json)의 내용이 올바른지 확인을 해주고, 맞다면 아래와같이 테스트 해본다.
1. SSH 클라이언트를 통해 접속 가능한지 확인
ssh [username]@[hostname or IP address]
2. 호스트의 22번 포트가 오픈되어 있지 않을 경우
해당 호스트에서 SSH 서비스가 실행 중인지 확인해야 합니다.
22번 포트가 오픈되어 있지 않다면, 호스트의 방화벽 설정 등을 수정하여 해당 포트를 오픈해야 합니다.
> 확인 방법
telnet <호스트 주소> 22
// 또는
nmap -p 22 <hostname or IP address>
// telnet, nmap 이 설치되어 있지 않다면 Homebrew 를 통해 설치해주자.
// brew install telnet
// brew install nmap
위 명령어를 실행하여 ssh 포트에 연결이 성공적으로 되는 경우에는 아래와 같은 문구가 표시된다.
// telnet 사용
Trying <호스트 주소>...
Connected to <호스트 주소>.
Escape character is '^]'.
// nmap 사용
$ nmap -p 22 <입력한 ip 주소>
Starting Nmap 7.91 ( https://nmap.org ) at 2023-03-28 11:00 KST
Nmap scan report for example.com (93.184.216.34)
Host is up (0.040s latency).
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
반대로 ssh 연결이 안되는 경우에는 아래와 같이 나온다.
// telnet 사용
Trying <호스트 주소>...
telnet: connect to address <호스트 주소>: Connection refused
telnet: Unable to connect to remote host
// nmap 사용
"closed" 또는 "filtered" 등의 결과가 출력
해당 오류를 겪고 있다면 ssh 연결이 안된다고 뜰것이다.
내가 처항 상황은 대학교건물 내부망을 사용하였는데
사용하고 있는 고정 ip에 나의 맥이 차단되어 승인을 기다리고 있었고,
회사 서버에서도 내가 사용하는 고정 ip가 승인이 되어있지 않았다.
내부망에서의 차단해제와 회사 서버에서의 승인 이후에는
원활하게 잘된다.
ssh연결이 안되는걸 확인했다면 나의 고정 ip 가 차단된것이 아닌지
제일먼저 확인해주자.
반응형