SSH를 통해 내 서버에 연결하지 못했습니다.

SSH를 통해 내 서버에 연결하지 못했습니다.

내 목표: 외부 클라이언트에서 내 워크스테이션으로 SSH를 통해 연결할 수 있기를 원합니다.

내 워크스테이션(이하 서버라고도 함)은 LAN에 있습니다. 이 LAN의 IP 주소는 인터넷의 IP 주소와 크게 다릅니다. 공개 키를 사용하여 SSH 서버를 설정했습니다.

클라이언트에서 ssh를 시도하면 이런 일이 발생합니다.

  1. 클라이언트가 동일한 LAN에 있는 경우:

    ifconfig에서 반환된 IP를 사용하여 내 서버를 ping해 보았습니다. 클라이언트가 내 서버를 ping할 수 없습니다.

  2. 클라이언트가 외부에 있고 LAN에 없는 경우:

    클라이언트는 서버에 ping을 보낼 수 있지만 연결을 시도하면 다음과 같은 오류가 발생합니다.Connection timed out


산출iptables -L -v

Chain INPUT (policy ACCEPT 346K packets, 233M bytes)
 pkts bytes target     prot opt in     out     source               destination         
 346K  233M sshguard   all  --  any    any     anywhere             anywhere            
 346K  233M sshguard   all  --  any    any     anywhere             anywhere            

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 193K packets, 26M bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain sshguard (2 references)
 pkts bytes target     prot opt in     out     source               destination   

답변1

iptables 구성이 표시됩니다.sshguard사용. 내가 확인해 볼게sshguard 구성SSH 연결을 허용합니다.

문제 해결에 도움이 되도록 sshguard( )를 제거 sudo apt-get remove sshguard하고 ssh가 제대로 작동하는지 확인할 수 있습니다.

sshguard를 설치한 후 iptables 규칙과 /etc/hosts.deny 규칙을 확인하세요.

iptables의 경우 아래 표시된 규칙을 시도해 보세요.sshguard netfilter-iptables 예:

iptables -N sshguard
# block whatever SSHGuard says be bad ...
iptables -A INPUT -j sshguard
# enable ssh, dns, http, https
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# and block everything else (default deny)
iptables -P INPUT DROP

관련 정보