Я пытаюсь SSH из NAS на веб-сервер, используя открытый ключ. Пользователь NAS - «root», а пользователь веб-сервера - «backup»
У меня все права установлены правильно, и когда я отлаживаю соединение SSH, я получаю: (последний маленький кусочек отладки)
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /root/.ssh/id_dsa.pub
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/root/.ssh/id_dsa.pub':
Я использую команду:
ssh -v -i /root/.ssh/id_dsa.pub backup@webserver.com
Тот факт, что он запрашивает парольную фразу, безусловно, является хорошим знаком, но я не хочу, чтобы он запрашивал этот пароль или пароль (который приходит позже, если я нажимаю «return» на парольной фразе)
источник
Это случилось со мной, когда закрытый ключ у меня был не в формате OpenSSH.
Первоначально я сгенерировал свой ключ на окнах, используя PuttyGen, и мне стало все равно.
Мне удалось это исправить, загрузив ключ в PuttyGen и нажав «Конверсии», чтобы получить его в формате OpenSSH.
источник
Есть несколько вещей.
Прежде всего, если KEY запрашивает пароль, ключ был сгенерирован с ним. Во-вторых, если система запрашивает пароль после, ключ не проходит проверку подлинности. Это значит, что вам нужно будет заново сгенерировать свой SSH-ключ (или изменить его, как предложено @rbtux) и исправить файлы авторизованные ключи.
Пункты в фигурных скобках - это параметры, тип и размер бита (чтобы указать очевидное: dsa> rsa, 4096> 1024 - в терминах «безопасность»).
Тогда вам необходимо добавить открытый ключ (.pub) до
authorized_keys
иauthorized_keys2
файлов (это распространенное заблуждение , говоря .pub для местного применения, однако он предназначен для сравнения с) Таким образом , в серверах.ssh
папки.Затем, с вашей стороны, вы должны убедиться, что у вас есть права доступа к ключу,
chmod 600 id_example
и чтобы облегчить ввод всего этого, вы можете настроить файл конфигурации:~/.ssh/config
в вашем локальном окне (это скелет, вы можете настроить эту тонну):источник
$ ssh user@comp -i ~/.ssh/id_rsa.pub
он указал неправильные разрешения и закрытый ключ будет проигнорирован .. поэтому я изменил разрешения на 600, как и id_rsa, и он попросил пароль. Таким образом, действительно, он будет запрашивать ключевую фразу, если вы укажете открытый ключ, даже если открытый ключ и закрытый ключ не были созданы с помощью ключевой фразыДля меня, так как сам ключ был зашифрован, я сделал следующие шаги:
$ ssh-agent bash
$ ssh-add
$ ssh-add /location/of/key
Для проверки в любое время список загруженных ключей:
Более подробную информацию можно получить по этой ссылке
источник
попробуйте https://wiki.gentoo.org/wiki/Keychain
Это своего рода обертка
ssh-agent
иssh-add
Плюсы: нет необходимости вводить пароль повторно, если вы не перезагружаетесь. Может быть использован в
crontab
.Это может помочь
источник
Это может быть потому, что вы используете DSA pubkey, который по умолчанию отключен в OpenSSH v7.
Если вы не можете изменить пару ключей, возможный обходной путь - попросить вашего демона SSH на webserver.com принять эти типы ключей, обновив
/etc/ssh/sshd_config
или эквивалентно добавив следующую строкуА затем перезапустить службу
источник
В Mac OSX вы можете добавить свой закрытый ключ в цепочку для ключей, используя команду:
Если ваш закрытый ключ хранится в ~ / .ssh и называется id_rsa:
Затем вам будет предложено ввести пароль, который будет храниться в вашей цепочке для ключей.
источник