Вход через туннель SSH с ключом RSA по-прежнему вызывает запрос пароля

Вход через туннель SSH с ключом RSA по-прежнему вызывает запрос пароля

У меня есть два ноутбука (Host A и Host C) с динамическими IP-адресами и один настольный компьютер (Host B), все они работают под управлением (Ubuntu) Linux. Сейчас я настроил все так, чтобы иметь доступ к Host A с Host C следующим образом. У меня есть туннель ssh от A до C с командой на hostA вида

autossh -NR 10023:localhost:22 [email protected]

Я использую пару ключей, чтобы команда autossh действительно могла быть выполнена.

Затем я могу подключиться по ssh к B из C, а затем подключиться к a с помощью

ssh -p 10023 localhost

запрашивает пароль и я могу войти. Никаких проблем.

Однако я хотел бы улучшить безопасность на A, поэтому для входа требуется ключ. Поэтому я создаю пару ключей с помощью ssh-keygen на HostB, называю свой ключ customkey_rsa и даю ему пароль. Тогда customkey_rsa.pub — это открытый ключ. Я не могу заставить ssh-copy-id работать с этим туннелем, поэтому я просто вхожу в A из C и выполняю scp через customkey_rsa.pub с Host B. Затем я добавляю ключ с помощью

cd .ssh & cat customkey_rsa.pub >> authorized_keys

Теперь, когда я пытаюсь войти, я все еще получаю запрос на пароль. Похоже, что он доходит до попытки ввести ключ, но каким-то образом сдается в последнюю секунду, как показано ниже

из Б

ssh -v -i customkey_rsa -p 10023 localhost

дает

OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: Connecting to localhost [127.0.0.1] port 10023.
debug1: Connection established.
debug1: identity file customkey_rsa type 1
debug1: identity file customkey_rsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2 pat OpenSSH_6.6.1* compat 0x04000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr [email protected] none
debug1: kex: client->server aes128-ctr [email protected] none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA (redacted)
debug1: Host '[localhost]:10023' is known and matches the ECDSA host key.
debug1: Found key in /home/ohnoplus/.ssh/known_hosts:2
debug1: ssh_ecdsa_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,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: customkey_rsa
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password 
ohnoplus@localhost's password: 

Обратите внимание, что разрешения для ~/.sshна хосте A равны , 700а для .ssh/authorized_keys600.

Итак, мой вопрос. Почему это не сработало и как это исправить?

Что я рассмотрел и что не помогло:

Проработал список предложений. Разрешения установлены правильно в моей системе, а другие решения не подходят. Почему я все еще получаю запрос на ввод пароля при использовании SSH с аутентификацией по открытому ключу?

Аналогично, но решение не предоставлено: ssh с ключом rsa запрашивает пароль

У меня нет файла "authorized_keys2" ssh запрашивает пароль, несмотря на .ssh/authorized_keys

решение1

Вам необходимо добавить:

PasswordAuthentication no

в ваш sshd_config (это конфигурация сервера)

Связанный контент