저는 집에 있는 서버에서 Ubuntu 14.04를 실행하고 있습니다. 내 컴퓨터에는 user1
및 이라는 두 명의 사용자가 있으며 user2
각 사용자는 상자에 SSH로 연결할 수 있습니다. user1
로그인 속도는 매우 빠르지 만 user2
로그인하는데 걸리는 시간은 약 20초 정도입니다. 특정 컴퓨터에서 어떤 사용자가 로그인하는지에 관계없이 동일한 동작이 발생합니다.
로그인하면 이 메시지 이후에 주요 일시 중지가 발생했음을 user2
알 수 있습니다 .ssh -v
debug1: Sending environment.
.bashrc
두 사용자의 파일은 동일합니다. ( diff
A에 대한 출력은 생성되지 않습니다.) .profile
및 의 파일에도 동일하게 적용됩니다.user1
user2
서버에는 /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초의 일시 중지 없이 로드 됩니다 .