SSH без пароля только работает одно время

Я хочу настроить SSH для использования его без потребности записи пароля. Я использую Ubuntu 18.04 LTS в Windows 10. Мне нужен он для выполнения Hadoop 3.1.1 (https://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-common/SingleCluster.html#Standalone_Operation) использование псевдораспределенного режима.

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

Я объясняю различные шаги, которые я использовал:

  1. Я создал ключ с помощью ssh-keygen-t rsa
  2. Я добавляю открытый ключ к authorized_keys файлам: кошка ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
  3. Я добавляю ключевое выполнение: исполнительный ssh-агент колотит и ssh-добавляет id_rsa (несколько лет назад, в этой точке иногда у меня были различные проблемы, и я использовал различные решения: https://superuser.com/questions/1147145/what-are-the-differences-between-the-those-ways-of-using-the-ssh-agent)
  4. Я выполняюсь: ssh localhost

В этой точке все право, но, когда я выполняюсь снова ssh localhost, затем, я должен записать пароль. Эти шаги хорошо работали в Ubuntu AWS 3 года назад.

Я попробовал в точке 3 этих других метода: https://www.ssh.com/ssh/copy-id

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

1
задан 7 October 2018 в 22:21

1 ответ

Необходимо смотреть на этот ответ, который описывает конфигурирование ssh для Вашего пользователя (редактирование ~/.ssh/config) и другие детали.

Шаги:

  1. Генерируйте Ваш ssh ключ.
  2. Добавьте Хост Вашего ~/.ssh/config файл.
  3. Добавьте свою Общественность (.pub) ключ к удаленному пользователю ~/.ssh/authorized_keys
    • Это, наиболее легко покончили ssh-copy-id команда.
    • ssh очень следит за полномочиями ~/.ssh/ и файлы, найденные в. ssh-copy-id дескрипторы все для Вас.
  4. Попытайтесь соединиться с Хостом:
    • ssh host
    • ssh host -vvv # Verbose output for troubleshooting

Вы пытаетесь использовать ssh-agent потому что Ваши ключи защищены паролем? Я рекомендовал бы продолжить работать, вручную соединившись без ssh-agent и получение той работы. После того, как у Вас будет своя ключевая работа, можно работать над решением любого из ssh-agent- конкретные вопросы.

Диагностировать, убеждаться использовать ssh в подробном режиме, и также контролируют (tail -f) удаленный сервер /var/log/auth.log файл. В более новых системах Вам, вероятно, придется использовать journalctl (journalctl -u sshd | tail -f).


После того как Вы получили ключевую работу в целом, можно изучить ssh-agent документация, такая как этот набор инструкций по установке. Обычно шаги следующие:

  1. Генерируйте свои ключи (поскольку Вы уже сделали).
  2. Установите ключи (поскольку Вы уже сделали).
  3. Запустить ssh-agent
    • eval ssh-agent
    • Только однажды, не каждое соединение или что-либо.
    • Вы можете иметь, это происходит автоматически, в зависимости от когда и для который пользователь.
  4. Добавьте свой ключ к ssh-agent:
    • ssh-add ~/.ssh/private_key

Обязательно изучите другой ssh-agent параметры конфигурации, такие как продолжительность Ваши ключи останутся разблокированными.


Излагая его кратко немного, Вашей проблемой является наиболее вероятный из них:

  1. Вы говорите, что добавили ssh-agent запуск, и добавление Вашего id_rsa ключ (в прошлом), но теперь, когда Вы генерировали новый ключ, тот ключ, должен будет также быть ssh-add'd.
    • Проверьте это ssh-agent на самом деле работает на Вашей системе, если у Вас есть проблемы после добавления ключа.
    • ps aux | ssh-agent
  2. Вы добавляете ключ к своему локальному файлу, не файлу удаленного пользователя.
    • Думайте о нем как, Вы добавляете пароль, таким образом, необходимо добавить пароль в системе, которая должна принять его.
    • Ваш удаленный хост является localhost, но это предполагает, что Вы захотите смочь работать над удаленными хостами в будущем. Однако это все еще должно быть в корректном $HOME каталог для корректного пользователя.
  3. Вы говорите, что это работает единственное время? Это работает дважды, если Вы пробуете два раза в более короткий период времени, говорите одну минуту? Я пытаюсь понять если Ваш ssh-agent просто настраивается для блокировки ключа в более короткий период времени, чем Вы протестировали.
  4. При добавлении к ~/.ssh/authorized_keys файл (>>), Вы первоначально создали файл, и это будет с неправильными полномочиями.
    • Не делайте следующего, не защищая доступ, и делая резервные копии на любые удаленные файлы.
    • Если Ваш 'удаленный хост' является localhost, он очень вероятно имеет файлы, которые Вы хотите сохранить, такие как Ваши ключи, и должны быть сохранены перед удалением.
    • Удалите все удаленное ~/.ssh/ каталог и использование ssh-copy-id правильно включать Вашего пользователя на удаленном хосте.
    • Это обнаружилось бы на удаленном хосте auth.log и укажите, что полномочия файла являются неправильными.
    • Если Вы продолжаете испытывать проблемы после использования ssh-copy-id для создания каталога и файлов отправьте полномочия ~/.ssh и Ваши сгенерированные файлы ключей.
  5. После Вас ssh в удаленный хост Вы проигрываете ssh-agent, если Вы не настроили ssh-agent, и ssh через ~/.ssh/config кому: ForwardAgent yes. Если Вы хотите передать ssh-agent, необходимо будет настроить его, чтобы признать, что, и понимают последствия безопасности с тем решением. Это должно также быть отмечено это ForwardAgent может быть разработан для работы различных машин, и не может быть возможно получить передачу, работающую локально из-за сложностей с ssh-agent уже выполнение.
3
ответ дан 3 December 2019 в 07:22

Другие вопросы по тегам:

Похожие вопросы: