Mac SSH не работает в пользовательском режиме, успешно в корневом режиме для того же личного ключа
Конфигурация системы:
MAC Version : 10.10.5
uname -a
Darwin xxxxx-xxxx 14.5.0 Darwin Kernel Version 14.5.0: Tue Sep 1 21:23:09 PDT 2015; root:xnu-2782.50.1~1/RELEASE_X86_64 x86_64
Выпуск:
Невозможно подключиться к серверу, используя закрытые ключи SSH в режиме пользователя. Однако та же команда с теми же ключами SSH (в том же месте, что и у пользователя) прекрасно работает с аутентификацией root.
Журналы с ошибками вывода (команда уровня пользователя):
> ssh -v -2A 198.18.144.158
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/userxyz/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to 198.18.144.158 [198.18.144.158] port 22.
debug1: Connection established.
debug1: identity file /Users/userxyz/.ssh/internal/2009-01-01.ppk type -1
debug1: identity file /Users/userxyz/.ssh/internal/2009-01-01.ppk-cert type -1
debug1: identity file /Users/userxyz/.ssh/internal/2009-01-01.ppk type -1
debug1: identity file /Users/userxyz/.ssh/internal/2009-01-01.ppk-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version Server-VIII-hpn14v2
debug1: no match: Server-VIII-hpn14v2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com none
debug1: kex: client->server aes128-ctr hmac-md5-etm@openssh.com none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: DSA ee:33:bd:ac:7b:6e:bd:0b:60:6e:49:20:56:cb:00:d3
debug1: Host '198.18.144.158' is known and matches the DSA host key.
debug1: Found key in /Users/userxyz/.ssh/known_hosts:1
debug1: ssh_dss_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/userxyz/.ssh/internal/2009-01-01.ppk
debug1: Authentications that can continue: publickey
debug1: Trying private key: /Users/kimanjun/.ssh/internal/2015-11-16.ppk
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
debug1: No more authentication methods to try.
Permission denied (publickey).
Изменения конфигурации на уровне пользователя
pwd
/Users/userxyz/.ssh
> cat config
IdentityFile ~/.ssh/internal/2009-01-01.ppk
>
Журналы успешных выходных данных (команда уровня root):
sudo ssh -v -2A 198.18.144.158
Password:
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to 198.18.144.158 [198.18.144.158] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /Users/userxyz/.ssh/internal/2009-01-01.ppk type -1
debug1: identity file /Users/userxyz/.ssh/internal/2009-01-01.ppk-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version Server-VIII-hpn14v2
debug1: no match: Server-VIII-hpn14v2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com none
debug1: kex: client->server aes128-ctr hmac-md5-etm@openssh.com none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: DSA ee:33:bd:ac:7b:6e:bd:0b:60:6e:49:20:56:cb:00:d3
debug1: Host '198.18.144.158' is known and matches the DSA host key.
debug1: Found key in /var/root/.ssh/known_hosts:1
debug1: ssh_dss_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/userxyz/.ssh/internal/2009-01-01.ppk
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).
Authenticated to 198.18.144.158 ([198.18.144.158]:22).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: SSH2_MSG_KEXINIT received
debug1: SSH2_MSG_KEXINIT sent
debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com none
debug1: kex: client->server aes128-ctr hmac-md5-etm@openssh.com none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: DSA ee:33:bd:ac:7b:6e:bd:0b:60:6e:49:20:56:cb:00:d3
debug1: Host '198.18.144.158' is known and matches the DSA host key.
debug1: Found key in /var/root/.ssh/known_hosts:1
debug1: ssh_dss_verify: signature correct
debug1: set_newkeys: rekeying
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: set_newkeys: rekeying
debug1: SSH2_MSG_NEWKEYS received
debug1: Requesting authentication agent forwarding.
This is a private system. No unauthorized use is permitted; if you are
not an authorized user, please log off now.
root@198.18.144.158:~# exit
Изменения конфигурации корневого уровня:
Я изменил корневой уровень ssh_config, чтобы он указывал на закрытый ключ учетной записи уровня пользователя вместо ключа rsa по умолчанию.
Что я пробовал:
а. Пробовал другое разрешение .ssh
а также internal
на уровне пользователя папка, но не влияет.
б. Пытался ssh-add
но посмотрите вывод, который выглядит хорошо.
с. проверил known_hosts как на уровне пользователя, так и на уровне root и выглядит идентично.
Не уверен, что является причиной проблемы - так как на корневом уровне я могу аутентифицировать ключ и на уровне пользователя не могу сделать то же самое.
Любая помощь приветствуется.
1 ответ
Поскольку вы не указываете конкретное имя пользователя в командной строке ssh: вы входите в систему с пользователем root
в удаленной системе при использовании sudo
и ваш обычный пользователь OSX userxyz
(или же kimanjun
или что угодно) когда вы этого не сделаете.
Пытаться ssh root@198.18.144.158
когда вы опускаете sudo
или же ssh -l root 198.18.144.158
,
Если вы не хотите входить в систему как root, используйте правильное имя удаленного входа и установите правильные ключи SSH.