나는 실행 중입니다 :
$ ssh user@ip_address
그리고 오랫동안 아무런 응답도 없이 기다렸습니다. 내 포트의 상태를 확인하려고 합니다.
$ a=`nmap ip_address -PN -p ssh | grep filtered`
$ echo $a
22/tcp filtered ssh
그럼 필터가 있는지 확인하시겠습니까? 이 필터를 어떻게 제거할 수 있나요?
당시에 확인해보니 다음과 같습니다.
$ netstat -tln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
그리고:
$ ps -ef | grep 'ssh[d]'
root 1017 1 0 10:58 ? 00:00:00 /usr/sbin/sshd -D
Ubuntu 설치는 "원시"이므로 내 시스템에 방화벽 관련 문제가 있는지 의심됩니다. 내가 틀렸다면 정정해주세요.
포트를 안전하게 여는 방법에 대한 아이디어가 있습니까? 이 컴퓨터 외부에서 SSH 연결을 활성화해야 합니다.
답변1
방화벽에서 포트를 엽니다(지금은 필터링이 있는 곳이라고 가정). 서버(원하는 머신 ssh
)에서 다음을 시도해 보세요.
sudo ufw allow 22/tcp
셸에서 오류 메시지를 여기에 게시하세요.
또한 출력을 게시하십시오
sudo netstat -tlpn
특히 방화벽 명령이 작동하지 않는 경우 이를 확인할 수 있습니다 sshd
.
netstat
위 명령(새로운 iproute2 도구)을 찾을 수 없는 경우 대안을 시도해 보십시오.
sudo ss -tlpn
출력의 가독성은 떨어지지만 포트 22에서 "LISTEN"을 실행하는 프로세스는 netstat
계속 표시되어야 합니다 .sshd
답변2
귀하와 ip_address 사이의 문제로 인해 ip_address:22에 대한 연결이 차단되어 응답이 수신되지 않습니다. 이는 ip_address 서버 자체일 수도 있고 사용자와 서버 사이의 상자일 수도 있습니다.
어디에서 차단이 발생하는지 추적하고 포트를 열어야 합니다.