SSH 연결이 지속적으로 시간 초과되는 문제 해결

SSH 연결이 지속적으로 시간 초과되는 문제 해결

Unix 시스템에서 원격 SFTP에 연결할 수 없는 이유를 해결하려고 합니다. 원격 호스트에는 내 공개 키가 있고 내 방화벽은 해당 호스트에 대한 아웃바운드 연결을 허용하도록 구성되어 있습니다.

호스트가 작동되어 사용 중인지 확인했고 nmap -Pn -p 22 $HOST다음과 같은 결과를 얻었습니다.

Host is up.
rDNS record for $HOST
PORT   STATE    SERVICE
22/tcp filtered ssh

명령줄을 통해 연결하려고 하는데 매번 연결 시간이 초과됩니다. 아웃바운드 연결이 진행되고 있는 것을 볼 수 있지만 응답이 없습니다.

명령줄을 통해 연결을 시도하는 방법은 다음과 같습니다.

timeout 30 ssh -i ~/.ssh/my_private_key user@$HOST

또한 개인 키를 일반 텍스트 파일에 복사/붙여넣고 다음을 사용해 보았습니다.

timeout 30 ssh -i ~/.ssh/my_private_key.txt user@$HOST

$ ssh -vvv -i ~/.ssh/my_private_key user@$HOST
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for *
debug2: resolving "$HOST" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to $HOST [$HOST] port 22.
debug1: connect to address $HOST port 22: Connection timed out
ssh: connect to host $HOST port 22: Connection timed out

호스트가 뭔가 잘못했다고 비난하기 전에 연결 문제를 해결하기 위해 내가 해야 할 다른 조치가 있습니까?

답변1

새로운 아웃바운드를 허용하도록 클라이언트를 구성해야 하지만 동일한 포트에 설정된 연결에 대한 인바운드도 허용해야 합니다. 호스트에서는 해당 포트의 새 인바운드 연결과 동일한 포트에 설정된 연결에 대한 아웃바운드 연결을 허용해야 합니다.

예:

(이렇게 하면 적절한 호스트로 들어오는 SSH 연결이 허용됩니다)

sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

(이렇게 하면 클라이언트에 대한 나가는 SSH 연결이 허용됩니다)

sudo iptables -A OUTPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

sudo iptables -A INPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

관련 정보