Я использую ssh-keygen
для генерации ключа в Ubuntu 10.10, затем использую ssh-copy-id
для копирования ключа на две удаленные машины, работающие на 10.04 (один рабочий стол, другой сервер).
Но вот в чем дело: я могу использовать SSH на рабочем столе без пароля, но через некоторое время меня снова спрашивают пароль. Сервер всегда запрашивает пароль и никогда не позволяет войти в систему с моим ключом.
Я проверил разрешения для папки .ssh
, authorized_keys file
, my id_dsa
и my id_dsa.pub
на всех хостах, и они соответствуют тому, что предлагает документация Ubuntu , Я даже скопировал свои ключи, используя scp
и gasp , установив разрешения для файлов и папок на 777, чтобы исключить любые проблемы с разрешениями.
Есть ли у кого-нибудь надежный способ настройки ключей SSH в Ubuntu для доступа по SSH без пароля, прежде чем я поменяю профессию и стану организатором цветов?
В первую очередь, я предлагаю, если Вы можете, к remove+purge, затем переустанавливать openssh-client/server на этих трех машинах и удалять каждый ~/.ssh, так, чтобы Вы запустили с чистой ситуации.
Затем, следуйте за этой человечностью страница Wiki, которая рассматривает более конкретно ssh конфигурации ключей.
Наконец, имейте в виду следующую проблему: от debian ssh Wiki:
Вход в систему без пароля не работает, если у группы или мира есть полномочия записи для корневого каталога на удаленной машине.
Вместо того, чтобы изменять разрешения для моей домашней папки, изменение разрешений для папки ~ / .ssh решило мою проблему в соответствии с этим .
Работа ssh регулируется извилистым лабиринтом из пары десятков файлов конфигурации, распределенных по ~/.ssh
и /etc/ssh
на клиентских и серверных машинах, причем все они разные.
И Pluggable Authentication Module (man 7 PAM
) присоединяется к партии для дополнительных ударов.
Я дам никель любому, кто сможет объяснить точную семантику всех этих взаимодействующих механизмов, поскольку я никогда не удосужился потратить день на их выяснение.
http://linuxproblem.org/art_9.html
следующее - то, что работало на меня по телефону 16.04
Ваша цель
, Вы хотите использовать Linux и OpenSSH для автоматизации задач. Поэтому Вам нужен автоматический вход в систему от хоста / пользователь для Хостинга B / пользователь b. Вы не хотите вводить любые пароли, потому что Вы хотите назвать ssh от в рамках сценария оболочки.
, Как сделать, это
Первый входит в систему на как пользователь a и генерирует пару аутентификационных ключей. Не вводите пароль:
a@A: ~> ssh-keygen-t rsa Генерация пары общественности/секретного ключа RSA. Введите файл, в котором можно сохранить ключ (/home/a/.ssh/id_rsa): Созданный каталог, '/home/a/.ssh'. Введите пароль (пустой ни для какого пароля): Введите тот же пароль снова: Ваша идентификация была сохранена в/home/a/.ssh/id_rsa. Ваш открытый ключ был сохранен в/home/a/.ssh/id_rsa.pub. Ключевой цифровой отпечаток: 3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A Теперь использует ssh для создания каталога ~/.ssh как пользователь b на B. (Каталог может уже существовать, который прекрасен):
a@A: ~> ssh b@B mkdir-p .ssh пароль b@B: Наконец добавьте новый открытый ключ a к b@B:.ssh/authorized_keys и введите пароль b в один прошлый раз:
a@A: ~> кошка .ssh/id_rsa.pub | ssh b@B 'кошка>> пароль b@B .ssh/authorized_key: С этого времени можно войти в B как b от как без пароля:
a@A: ~> ssh b@B примечание от одного из наших читателей: В зависимости от Вашей версии SSH Вам, возможно, также придется сделать следующие изменения:
Помещенный открытый ключ в Изменение .ssh/authorized_keys2 полномочия .ssh к 700 Изменениям полномочия .ssh/authorized_keys2 к 640