SSH 접속이 느린 경우에 대한 해결책?

권순선의 이미지

이곳 bbs.kldp.org 를 위해 새로운 서버를 마련해서 현재 대부분의 작업들은 마무리가 되었고 별다른 문제가 없는데 좀 신경쓰이는 것이 한가지 있네요.

바로 ssh접속이 느리다는 것입니다. ssh로 접속할 때 로긴 프롬프트가 뜨는 속도가 매우 느립니다.

slogin bbs.kldp.org 이런식으로 접속할때 로긴 프롬프트가 다른곳에 비해 매우 늦게 뜬다는 것이지요. 아마 네트워크 설정쪽의 문제인것 같은데 찾을수가 없네요. 같은 문제를 겪었거나, 혹은 짚이는 부분이 있으면 좀 알려 주세요...

송지석의 이미지

dns쪽 문제가 아닐까요? reverse로 dns lookup을 하기 때문이라는 얘기를 들은 적이 있습니다만.. (맞나?)

권순선의 이미지

송지석 wrote:
dns쪽 문제가 아닐까요? reverse로 dns lookup을 하기 때문이라는 얘기를 들은 적이 있습니다만.. (맞나?)

저도 그런 생각으로 ssh쪽의 설정파일들을 찾아보았는데 reverse dns lookup에 관한 내용은 없더군요. 그러니 이상하죠.
nainu의 이미지

권순선 wrote:
송지석 wrote:
dns쪽 문제가 아닐까요? reverse로 dns lookup을 하기 때문이라는 얘기를 들은 적이 있습니다만.. (맞나?)

저도 그런 생각으로 ssh쪽의 설정파일들을 찾아보았는데 reverse dns lookup에 관한 내용은 없더군요. 그러니 이상하죠.

ssh 로긴을 할때 -v 옵션을 사용하시면 verbose 모드로 들어갑니다. (아시겠지만..)
여기서 메세지들을 잘 살펴보시면 어디서 느려지는지 아실 수 있을 것 같습니다.

권순선의 이미지

bbs.kldp.org로 로긴할 때의 디버그 메시지입니다. 로긴이 잘 되는 다른 서버와 메시지 내용 자체는 차이가 전혀 없고요.

Quote:
OpenSSH_3.4p1 Debian 1:3.4p1-0.0potato1, SSH protocols 1.5/2.0, OpenSSL 0x0090603f
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Rhosts Authentication disabled, originating port will not be trusted.
debug1: ssh_connect: needpriv 0
debug1: Connecting to bbs.kldp.org [211.39.143.150] port 22.
debug1: Connection established.
debug1: identity file /home/staff/kss/.ssh/identity type 0
debug1: identity file /home/staff/kss/.ssh/id_rsa type -1
debug1: identity file /home/staff/kss/.ssh/id_dsa type -1
debug1: Remote protocol version 1.99, remote software version OpenSSH_3.4p1 Debian 1:3.4p1-1
debug1: match: OpenSSH_3.4p1 Debian 1:3.4p1-1 pat OpenSSH*
Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_3.4p1 Debian 1:3.4p1-0.0potato1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: dh_gen_key: priv key bits set: 133/256
debug1: bits set: 1596/3191
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'bbs.kldp.org' is known and matches the RSA host key.
debug1: Found key in /home/staff/kss/.ssh/known_hosts:8
debug1: bits set: 1553/3191
debug1: ssh_rsa_verify: signature correct
debug1: kex_derive_keys
debug1: newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: waiting for SSH2_MSG_NEWKEYS
debug1: newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: done: ssh_kex2.
debug1: send SSH2_MSG_SERVICE_REQUEST
debug1: service_accept: ssh-userauth
debug1: got SSH2_MSG_SERVICE_ACCEPT
debug1: authentications that can continue: publickey,password,keyboard-interactive
debug1: next auth method to try is publickey
debug1: try privkey: /home/staff/kss/.ssh/id_rsa
debug1: try privkey: /home/staff/kss/.ssh/id_dsa
debug1: next auth method to try is keyboard-interactive
debug1: authentications that can continue: publickey,password,keyboard-interactive
debug1: next auth method to try is password

아래 부분에서 한참동안 멈추어 있더군요.

Quote:
debug1: send SSH2_MSG_SERVICE_REQUEST
debug1: service_accept: ssh-userauth
debug1: got SSH2_MSG_SERVICE_ACCEPT <--여기서 다음으로 넘어갈때 시간이 오래 걸립니다.
debug1: authentications that can continue:
ai의 이미지

원인은 dns reverse lookup 이 맞는 것 같습니다. sshd 쪽 디버그 로그를 함께 뿌려보시면 여기쯤에서 멈출겁니다.
debug3: Trying to reverse map address ....
sshd 설정 파일에서 reverse lookup 기능을 사용하지 않도록 하는 방법은 잘 모르겠습니다만, named 를 올리시거나 /etc/hosts 파일을 적당히 설정하는 방법으로 해결이 되지 않을까 보입니다.

http://spitfire.velocet.net/pipermail/freebsd-stable/2002-July/033161.html
http://www.openbsd.org/faq/faq8.html#RevDNS

War doesnt determine whos right, just whos left.

nainu의 이미지

저도 비슷한 경험을 한 적이 있어서, 한번 찾아보았습니다.

딜레이가 생기는 경우로는 일반적으로 reverse dns 의 경우가 가장 많은 듯 하고.. 그 외에 tcpwrap 에서 딜레이걸리는 일이 있는가봅니다.

가장 쉽게 테스트할 방법으로는 역시 hosts 파일에 ip를 추가시켜주는 게 아닐까 싶고, sshd_config 에서 로그 단계를 DEBUG까지 올려놓고 로그를 살펴보시는 것이 또한 괜찮은 방법이 아닐까 합니다.

영어도 짧고 당장 테스트할 방도도 없고 해서 링크만 몇개 찾아보았습니다.
sshd_config 에서 reverse mapping 을 죽이는 옵션이 있는 글도 있군요.

http://www.blu.org/pipermail/discuss/2001-September/020989.html
http://trilug.org/pipermail/trilug/Week-of-Mon-20011217/002944.html

도움이 되셨으면 좋겠습니다. 저도 매우 궁금해서요. :)

권순선의 이미지

일단 접속하고자 하는 호스트를 /etc/hosts에다 명시해 주니 속도는 빨라졌습니다. 그런데 이상한 것은 같은 버전의 ssh를 돌리고 있는 다른 머신에는 /etc/hosts에 별다른 내용추가 없이도 접속이 느려지는 현상이 없다는 것입니다. 둘다 debian woody를 사용중이고, /etc/ssh의 설정들도 똑같습니다.

ReverseMappingCheck 이 #로서 주석처리되어 있는 것도 같고요. ReverseMappingCheck 는 별도로 옵션을 주지 않을 경우 yes로 작동한다고 하는군요.

같은 OS, 같은 버전의 ssh, 같은 설정을 쓰는데도 양쪽이 다르게 작동하니 참 모를 일이네요. google에서 찾아봐도 비슷한 문제를 겪은 사람들은 많은데 명쾌한 원인/해결책은 찾기가 어렵군요. :?

배재학의 이미지

:) dns 쪽 문제 맞을 것 같습니다. 우선 resolv.conf 파일 rename시켜서 한 번 테스트 해 보시고.. host 접속 하실려면 등록 해 주심이.....
HP 머신에서 그런 경우가 많던데.... 함 해 보시고 결과 가르쳐 주세요..
궁금해서리...

그럼 수고 하세요.. ^^;;

송지석의 이미지

그러고 보니 저도 느린 때가 있어서 디버그 메시지를 뿌려봤더니 이렇게 나오네요..

Quote:
debug1: SSH2_MSG_NEWKEYS received
debug1: KEX done
debug1: userauth-request for user rommance service ssh-connection method none
debug1: attempt 0 failures 0
debug1: Starting up PAM with username "rommance"
Could not reverse map address 192.168.1.129.
debug1: PAM setting rhost to "192.168.1.129"
*****Failed none for rommance from 192.168.1.129 port 56034 ssh2
*****Failed none for rommance from 192.168.1.129 port 56034 ssh2
debug1: userauth-request for user rommance service ssh-connection method keyboard-interactive
debug1: attempt 1 failures 1
debug1: keyboard-interactive devs
debug1: auth2_challenge: user=rommance devs=
debug1: kbdint_alloc: devices ''
******Failed keyboard-interactive for rommance from 211.242.178.129 port 56034 ssh2
debug1: userauth-request for user rommance service ssh-connection method password
debug1: attempt 2 failures 2
debug1: PAM Password authentication accepted for user "rommance"
Accepted password for rommance from 192.168.1.129 port 56034 ssh2

fail이 난 곳을 **로 표시했습니다..
이건 어떻게 된 것일까요?
sshd_config의 내용에는
VerifyReverseMapping no
ReverseMappingCheck no
로 써놨습니다만..
mushim의 이미지

Quote:
그런데 이상한 것은 같은 버전의 ssh를 돌리고 있는 다른 머신에는 /etc/hosts에 별다른 내용추가 없이도 접속이 느려지는 현상이 없다는 것입니다. 둘다 debian woody를 사용중이고, /etc/ssh의 설정들도 똑같습니다.

사용하고 계신 로컬 네임서버도 같은가요?
/etc/resolv.conf 에 있는 ...

권순선의 이미지

mushim wrote:
Quote:
그런데 이상한 것은 같은 버전의 ssh를 돌리고 있는 다른 머신에는 /etc/hosts에 별다른 내용추가 없이도 접속이 느려지는 현상이 없다는 것입니다. 둘다 debian woody를 사용중이고, /etc/ssh의 설정들도 똑같습니다.

사용하고 계신 로컬 네임서버도 같은가요?
/etc/resolv.conf 에 있는 ...


그렇지 않아도 그게 좀 걸려서 /etc/resolv.conf의 내용도 같게 하고 테스트해 봤습니다만 결과는 마찬가지였습니다. 어차피 reverse dns lookup이 되지 않는 동일한 호스트에서 접속을 시도하는 것인데 한쪽은 빨리 접속이 되고 다른 한쪽은 느리게 접속이 되고 있지요.
ai의 이미지

별도의 설정없이 빠르게 접속이 가능한 ssh 서버에

  1. named 를 운영중
  2. named 의 inverse zone 에 접속 불량한 ssh 클라이언트 ip 가 등록
  3. /etc/resolv.conf 에 자신 스스로를 dns 로 설정
..하고 있는 것이 아닌지요?

아무튼 원활한 포럼 접근을 위해 애써주셔서 감사합니다. :)

[/]

War doesnt determine whos right, just whos left.

lethean의 이미지

예전에 어디선가 읽은 기억이 있는 팁인데 현재 잘 사용하고 있습니다.
데비안의 경우입니다.

우선 /etc/ssh/sshd_config 에 명시적으로 ReverseMappingCheck no 를 해주어야 합니다.

그런 다음 /etc/default/ssh 파일에 SSHD_OPTS=-u0 를 추가해 주신후 /etc/init.d/ssh stop; /etc/init.d/ssh start로 서버를 재시작해 보시길 바랍니다.

도움 되시길...

참, 우디에서는 sshd 옵션을 /etc/default/ssh에서 지정할 수 없기 때문에 직접 /etc/init.d/ssh 스크립트에서 데몬 시작 스트립트 맨 마지막에 옵션을 넘겨주어야 합니다. 아마 문법이 '-- -u0' 식일 겁니다. man start-stop-daemon.

Nevermind... :)

권순선의 이미지

문제의 원인은 모르겠고, 설정을 고친것도 없는데 오늘 ssh 를 업그레이드했더니 지연현상 없이 접속이 바로 되는군요. 문제 해결 되었습니다. :)

debian woody에서 최신버전의 ssh 로 업데이트했습니다.

그노카스의 이미지

/etc/ssh/sshd_config
내용중에,

UseDNS no

옵션을 주니까, 해결됩니다.

오래된 질문인지는 압니다만, 나중에 제가 다시 해결책을 찾을때...
쉽게 찾으려고 답을 답니다. ^^;;

nikkii의 이미지

오래된 질문이지만, 그렇게 해결했고
ssh 데몬 다시 시작하는거 잊지 마세요.

우분투
sudo /etc/init.d/ssh start

OR
$ sudo service ssh start

others
service sshd restart

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.