공용 서버에 SSH로 연결할 때 비밀번호 프롬프트가 지연됩니다.

공용 서버에 SSH로 연결할 때 비밀번호 프롬프트가 지연됩니다.

저는 대학에 공개 IP를 사용하는 서버(debian 7) 설정을 가지고 있습니다. (캠퍼스 외부에서) 시스템에 SSH로 접속할 때 비밀번호 프롬프트가 표시되기 전에 5~10초 정도 이상한 지연이 발생합니다. 왜 그런 겁니까?

ssh -v자세한 출력을 얻기 위해 실행합니다 .

debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received

.... delay of 5-10 seconds here

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/nass/.ssh/id_rsa
debug1: Trying private key: /home/nass/.ssh/id_dsa
debug1: Trying private key: /home/nass/.ssh/id_ecdsa
debug1: Next authentication method: password

그런 다음 비밀번호 프롬프트가 표시됩니다.

resolv.conf외모는

domain <mydomain>.edu
nameserver <dns ip address>

방화벽은 에 의해 제어되며 webmin구성은 /etc/webmin/firewall/iptables.save다음과 같습니다.

# Generated by iptables-save v1.4.14 on Mon Feb 10 17:41:38 2014
*filter
:FORWARD DROP [0:0]
:IP_TCP - [0:0]
:INPUT DROP [0:0]
:IP_UDP - [0:0]
:OUTPUT ACCEPT [0:0]
:IP_ICMP - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED -j ACCEPT
-A INPUT -m state --state RELATED -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags ACK ACK -j ACCEPT
-A INPUT -s 127.0.0.1/32 -i eth0 -j DROP
-A INPUT -p icmp -i eth0 -j IP_ICMP
-A INPUT -p udp -m udp -i eth0 -j IP_UDP
-A INPUT -p tcp -m tcp -i eth0 -j IP_TCP
-A INPUT -m limit --limit 3/second --limit-burst 3 -j ULOG --ulog-prefix "FW_INPUT: " --ulog-nlgroup 1
-A IP_ICMP -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A IP_ICMP -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A IP_ICMP -p icmp -m icmp --icmp-type 4 -j ACCEPT
-A IP_ICMP -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A IP_ICMP -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A IP_ICMP -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A IP_ICMP -p icmp -j RETURN
-A IP_TCP -p tcp -m tcp --dport 2049:2050 -j DROP
-A IP_TCP -p tcp -m tcp --dport 6000:6063 -j DROP
-A IP_TCP -p tcp -m tcp --dport 7000:7010 -j DROP
-A IP_TCP -p tcp -m tcp --dport 19001 -j ACCEPT
-A IP_TCP -p tcp -m tcp --dport 12321 -j ACCEPT
-A IP_TCP -p tcp -m tcp --dport 80 -j ACCEPT
-A IP_TCP -p tcp -m tcp --dport 443 -j ACCEPT
-A IP_TCP -p tcp -m tcp -j RETURN
COMMIT
# Completed on Mon Feb 10 17:41:38 2014
# Generated by iptables-save v1.4.14 on Mon Feb 10 17:41:38 2014
*mangle
:PREROUTING ACCEPT [2386474:238877913]
:INPUT ACCEPT [2251067:225473866]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1100410:5416839301]
:POSTROUTING ACCEPT [1100428:5416842284]
COMMIT
# Completed on Mon Feb 10 17:41:38 2014
# Generated by iptables-save v1.4.14 on Mon Feb 10 17:41:38 2014
*nat
:PREROUTING ACCEPT [211832:26633302]
:INPUT ACCEPT [444:26827]
:OUTPUT ACCEPT [1817:114098]
:POSTROUTING ACCEPT [1817:114098]
COMMIT
# Completed on Mon Feb 10 17:41:38 2014

마지막으로 동일한 시스템에 계정이 있는 동료도 즉시 메시지를 받게 됩니다!

답변1

설명에 표시된 대로 이는 서버 UseDNS yes의 설정 으로 인해 발생했을 가능성이 높습니다.sshd_config

설정 UseDNS은 바로 이 문제의 일반적인 원인입니다. 기본적으로 IP 넷블록에 결함이 있거나 DNS 서버가 누락된 경우가 발생합니다. 따라서 sshd는 IP 주소에 대한 역방향 조회를 시도하고 시간이 초과될 때까지 기다립니다. 다른 사람들은 넷블록에 대해 작동하는 DNS 서버를 갖고 있으므로 지연을 경험하지 않습니다.

대부분의 사람들은 바로 이런 이유로 이 설정을 꺼둡니다. 예, 보안을 위한 설정이 있지만그건 꽤 쓸모없어.

해결책은 간단히 다음을 설정하는 것입니다 sshd_config.

UseDNS no

관련 정보