한 사용자에게는 openSSH 로그인 속도가 느리지만 다른 사용자에게는 그렇지 않습니다.

한 사용자에게는 openSSH 로그인 속도가 느리지만 다른 사용자에게는 그렇지 않습니다.

저는 집에서 Ubuntu 14.04로 서버를 운영하고 있습니다. 컴퓨터에 와 user1이라는 두 명의 사용자가 있는데 user2각각 상자에 SSH로 연결할 수 있습니다. user1매우 빠르게 로그인 하지만 user2로그인하는 데 약 20초가 걸립니다. 특정 컴퓨터에서 어떤 사용자가 로그인하는지에 관계없이 동일한 동작이 발생합니다.

user2다음 으로 로그인하면 ssh -v이 메시지 이후에 주요 일시 중지가 발생함을 알 수 있습니다.

debug1: Sending environment.

.bashrc두 사용자의 파일은 동일합니다 . (A는 diff출력을 생성하지 않습니다.) 및 .profile의 파일 과 동일합니다 .user1user2

서버에는 다음 줄이 /etc/ssh/sshd_config있습니다 AllowUsers user1 user2. 동일한 파일이 UseDNS no이미 들어 있습니다. (솔루션을 검색하는 동안 찾은 대부분의 페이지에서 해당 줄을 추가하는 방법이 언급되어 있기 때문에 이에 대해서만 언급합니다.)

이 문제는 불과 일주일 전에 시작되었습니다. 나는 기계를 운영해온 지난 몇 년 동안 그런 문제가 없었습니다.

즉흥적으로 새 사용자인 을 생성하고 적절하게 user3편집하여 해당 사용자에게 SSH 액세스 권한을 부여했으며 sshd_config새 사용자에 대한 로그인이 빠릅니다. 그래서 실제로 user2구성 방식에 관한 것 같습니다 . 근데 뭐?

에 대한 로그인 지연의 근본 원인을 찾으려면 어디에서 찾아야 합니까 user2?

편집: 다음은 로그인 tail -f /var/log/auth.log시 의 결과입니다 .user2

Jun 21 11:27:10 topo sshd[18386]: Connection from re.mo.te.ip port XXXXX on se.rv.er.ip port XX
Jun 21 11:27:21 topo sshd[18386]: Accepted password for user2 from re.mo.te.ip port XXXXX ssh2
Jun 21 11:27:21 topo sshd[18386]: pam_unix(sshd:session): session opened for user user2 by (uid=0)
Jun 21 11:27:21 topo systemd-logind[3347]: New session 25 of user user2.
Jun 21 11:28:03 topo sshd[18386]: User child is on pid XXXXX
Jun 21 11:28:03 topo sshd[18455]: Starting session: shell on pts/6 for user2 from re.mo.te.ip port XXXXX

타임스탬프를 참고하세요. 여기서 마지막 메시지 이후 지연이 발생합니다. user2최종적으로 로그인되면 auth.log에 메시지가 나타나지 않습니다 .

편집: 다음은 strace -f -p <sshd pid> -o out.tx -tt지연이 발생한 일부 결과입니다.

22733 12:59:10.414388 open("/usr/lib/python2.7/dist-packages/twisted/python/compat.x86_64-linux-gnu.so", O_RDONLY) = -1 ENOENT (No such file or directory)
22733 12:59:10.840303 open("/usr/lib/python2.7/dist-packages/twisted/python/compat.so", O_RDONLY) = -1 ENOENT (No such file or directory)
22733 12:59:11.264716 open("/usr/lib/python2.7/dist-packages/twisted/python/compatmodule.so", O_RDONLY) = -1 ENOENT (No such file or directory)
22733 12:59:11.717471 open("/usr/lib/python2.7/dist-packages/twisted/python/compat.py", O_RDONLY) = 4
22733 12:59:12.660275 fstat(4, {st_mode=S_IFREG|0644, st_size=11146, ...}) = 0
...
22733 12:59:12.661502 open("/usr/lib/python2.7/dist-packages/twisted/python/__future__.x86_64-linux-gnu.so", O_RDONLY) = -1 ENOENT (No such file or directory)
22733 12:59:13.212844 open("/usr/lib/python2.7/dist-packages/twisted/python/__future__.so", O_RDONLY) = -1 ENOENT (No such file or directory)
...
22733 12:59:14.441963 open("/usr/bin/dis.py", O_RDONLY) = -1 ENOENT (No such file or directory)
22733 12:59:14.900322 open("/usr/bin/dis.pyc", O_RDONLY) = -1 ENOENT (No such file or directory)
22733 12:59:15.401750 stat("/usr/lib/python2.7/dis", 0x7ffcb599ddd0) = -1 ENOENT (No such file or directory)
...
22733 12:59:17.315288 open("/usr/lib/python2.7/dist-packages/twisted/internet/termios.so", O_RDONLY) = -1 ENOENT (No such file or directory)
22733 12:59:17.967173 open("/usr/lib/python2.7/dist-packages/twisted/internet/termiosmodule.so", O_RDONLY) = -1 ENOENT (No such file or directory)
22733 12:59:18.511526 open("/usr/lib/python2.7/dist-packages/twisted/internet/termios.py", O_RDONLY) = -1 ENOENT (No such file or directory)
...
22733 12:59:25.993287 open("/usr/lib/python2.7/dist-packages/landscape/monitor/time.x86_64-linux-gnu.so", O_RDONLY) = -1 ENOENT (No such file or directory)
22733 12:59:26.612018 open("/usr/lib/python2.7/dist-packages/landscape/monitor/time.so", O_RDONLY) = -1 ENOENT (No such file or directory)
...
22733 12:59:29.688166 open("/proc/37/stat", O_RDONLY) = 9
22733 12:59:30.239695 fstat(9, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
...
22733 12:59:30.240450 open("/proc/uptime", O_RDONLY) = 10
22733 12:59:31.634404 fstat(10, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
...
22733 12:59:34.287758 open("/proc/557/stat", O_RDONLY) = 9
22733 12:59:34.851662 fstat(9, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
...
22758 12:59:39.500397 open(".", O_RDONLY) = 3
22758 12:59:40.377193 fchdir(3)         = 0
22758 12:59:40.377312 newfstatat(AT_FDCWD, "/var/lib/apt//lists/", {st_mode=S_IFDIR|0755, st_size=12288, ...}, AT_SYMLINK_NOFOLLOW) = 0
22758 12:59:40.377378 open(".", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_DIRECTORY|O_NOFOLLOW) = 4
22758 12:59:40.878676 fchdir(4)         = 0
...
22759 12:59:41.680427 open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
22759 12:59:42.249796 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P \2\0\0\0\0\0"..., 832) = 832
...
22759 12:59:46.019309 open("/etc/lsb-release", O_RDONLY|O_CLOEXEC) = 64
22759 12:59:46.948115 fstat(64, {st_mode=S_IFREG|0644, st_size=105, ...}) = 0
...
22786 12:59:50.251281 open("/dev/null", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
22786 12:59:50.970074 fcntl(1, F_GETFD) = 0
...
22785 12:59:53.338632 select(10, [3 4 6], [], NULL, NULL) = 1 (in [3])
22785 12:59:53.771002 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0

이것 중 많은 부분이 Python 라이브러리와 관련이 있는 것 같습니다. 그러나 user1이러한 0.5초의 일시 중지 없이 로그인할 때도 로드됩니다 .

관련 정보