У меня очень странное поведение (ошибка?) С моим ssh-клиентом. Когда я пытаюсь использовать его с записью A, скажите ssh -vvvT github.com
Я получаю следующую ошибку:
ssh -vvvT github.com
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolve_addr: could not resolve name github.com as address: Name or service not known
ssh: Could not resolve host "github.com"
Это отличается от ответа, который я получаю, когда пытаюсь использовать CNAME, указывающую также на ту же запись A (www.github.com IN CNAME github.com
):
ssh -vT www.github.com
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Re-reading configuration after hostname canonicalisation
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to www.github.com [192.30.253.113] port 22.
debug1: Connection established.
[...]
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.2
debug1: Remote protocol version 2.0, remote software version libssh_0.7.0
debug1: no match: libssh_0.7.0
debug1: Authenticating to www.github.com:22 as 'user'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256@libssh.org
debug1: kex: host key algorithm: ssh-rsa
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
[...]
Permission denied (publickey).
Мы видим, что здесь он ждет канонизации DNS, а затем может решить эту проблему.
Я борюсь с этим уже пару дней. Думаю, я пробовал почти все, что нашел, например:
У меня такая же проблема, когда я дома или на работе (портативный компьютер). Думаю, проблема действительно в моей машине.
Проблема не связана только с github, у меня такая же проблема с любой записью A, которую я тестировал ...
И все DNS-клиенты или отладочное программное обеспечение, которое я тестировал, могут без проблем разрешать эти записи (dig
, nslookup
, и т.д).
Есть у кого-нибудь идеи? Я хотел бы понять и решить эту проблему, а не переустанавливать машину, поскольку я начинаю думать об этом ...
system: ubuntu 16.04
ssh version: ssh OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 Mar 2016
РЕДАКТИРОВАТЬ 1:
Как было сказано, ни один из "стандартных" методов не работает, потому что все вроде работает нормально:
getent hosts github.com
192.30.253.113 github.com
192.30.253.112 github.com
sudo service nscd stop
Failed to stop nscd.service: Unit nscd.service not loaded.
ssh -4 github.com
ssh: Could not resolve host "github.com"
РЕДАКТИРОВАТЬ 2: это мой /etc/ssh/ssh_config
файл :
~ grep -v '^#' /etc/ssh/ssh_config
Host *
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
CanonicalizeHostname yes
CanonicalizeFallbackLocal no
и dig
выход для github.com
:
~ dig github.com
; <<>> DiG 9.10.3-P4-Ubuntu <<>> github.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15271
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;github.com. IN A
;; ANSWER SECTION:
github.com. 3 IN A 192.30.253.113
github.com. 3 IN A 192.30.253.112
;; Query time: 0 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Mon Aug 28 14:33:48 CEST 2017
;; MSG SIZE rcvd: 71
и для www.github.com
:
~ dig www.github.com
; <<>> DiG 9.10.3-P4-Ubuntu <<>> www.github.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11119
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.github.com. IN A
;; ANSWER SECTION:
www.github.com. 3600 IN CNAME github.com.
github.com. 45 IN A 192.30.253.112
github.com. 45 IN A 192.30.253.113
;; Query time: 16 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Mon Aug 28 14:34:14 CEST 2017
;; MSG SIZE rcvd: 89
РЕДАКТИРОВАТЬ 3:
Я пытался установить CanonicalizeHostname=no
вместо того CanonicalizeHostname=yes
и это работает.
Я не понимаю последствий канонизации, потому что согласно руководству openssh (насколько я понимаю) говорится, что это используется только с CanonicalizePermittedCNAMEs
правила. Это означает, что нельзя избегать использования записей A, или я ошибаюсь?
Проверьте, есть ли в вашем файле / etc / hosts что-то, что мешает поиску. Файл hosts обрабатывается до разрешения DNS.
Попробуйте следующее, чтобы показать, что на самом деле возвращает система, когда ssh пытается разрешить github.com:
getent hosts github.com
Если это возвращает что-то еще, чем ожидаемые адреса, и ваш файл hosts выглядит нормально, вы можете попробовать отключить DNS-кеширование.
dnsmasq (если установлен):
sudo service dnsmasq stop
nscd (если установлен):
sudo service nscd stop
Также может быть интересно проверить, дает ли принудительный поиск и подключение ipv4 другой результат:
ssh -4 github.com