ssh клиент запрашивает пароль по умолчанию; как настроить его на использование ключа?

У меня есть и пароли, и аутентификация pubkey, доступные на моем сервере. Я могу зарегистрироваться с клиентом с указанным ключом:

ssh user@host -i id_rsa 

Когда я не укажу ключевой файл, он запрашивает пароль. Но я хотел бы войти по ключевому файлу по умолчанию.

Я нашел подсказку, что я могу поместить что-то в ~ / .ssh / config. Поэтому я указал что-то вроде этого:

 Host xxx IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes User uuu 

Конфигурация интерпретируется – используется пользователь uuu, но ключевой файл по-прежнему игнорируется. Как сделать ssh предпочтительнее по умолчанию?

  • Как увеличить объем корня
  • Какие средства командной строки можно подключить из Unix к удаленным Windows?
  • Как автоматизировать скрипт, который требует пароль ssh-ключа с регулярными интервалами
  • Зачем оценивать вывод ssh-agent?
  • Команда PHP exec имеет результат 0, даже если возникает ошибка
  • Обнаружение тайм-аута SSH
  • echo $? печатает 1 после запуска ssh-add
  • проблема редактирования utf8 текстовый файл с vim
  • 4 Solutions collect form web for “ssh клиент запрашивает пароль по умолчанию; как настроить его на использование ключа?”

    Если у вас есть каталог ~/.ssh и закрытый ключ id_rsa в вашем ~/.ssh принадлежащем вам с файловым режимом 0600 ( -rw------- ), то ssh будет использовать его автоматически и запросить пароль только если аутентификация с открытым ключом не удалась. Убедитесь, что все эти условия выполнены. Параметр -i обычно используется, когда вам нужно пройти аутентификацию с помощью другого ключа.

    Ваш файл конфигурации должен быть

     Host xxx User user IdentityFile ~/.ssh/id_rsa 

    Вы должны проверить rigth на файлах:

     ~/.ssh/id_rsa : rwx------ 

    На удаленном хосте:

    • /home/user : нет прав на запись для группы и других
    • /home/user/.ssh : rwx------

    Вы можете проверить файл журнала на удаленном хосте, и вы можете увидеть некоторые сообщения об ошибках:

     tail -f /var/log/auth.log 

    Надеюсь, поможет

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

    Перед этим вам нужно проверить, где ваш SSH-сервер ищет клиентские ключи. Вам нужно проверить конфигурационный файл SSH-сервера / etc / ssh / sshd_config и найти следующую строку:

     AuthorizedKeysFile .ssh/authorized_keys 

    Это говорит о том, что сервер будет искать в файле с именем authorized_keys каждого домашнего каталога пользователя в папку .ssh для открытых ключей, разрешенных для входа этого пользователя.

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

    Чтобы упростить это, выполните следующие шаги:

    • Найдите директиву AuthorizedKeysFile в /etc/ssh/sshd_config на сервере.
    • Создайте личные и открытые ключи в клиенте (вы уже это сделали).
    • Скопируйте содержимое открытого ключа клиента в файл authorized_keys пользователя, который вы хотите войти на сервер. Если вы хотите войти в систему с username , вам необходимо скопировать открытый ключ в файл /home/username/.ssh/authorized_keys (создать его, если его не существует).

    Надеюсь это поможет.

    Спасибо всем. Похоже, что это была проблема с ssh-agent. После перезагрузки все в порядке. Я думаю, что он не обновлял какую-то конфигурацию «на лету», когда принятые методы входа изменились на сервере.

    Linux и Unix - лучшая ОС в мире.