Tamkovich.com: Телеком/VoIP блог
Современные технологии: Asterisk, SIP, Kamailio, Linux, Cisco, Linksys
Настройка беспарольного доступа по ssh (passwordless SSH)
27 марта, 2014 by rius
Linux, Программирование shellОбычно такая настройка нужна для автоматизации: доступ с одного хоста на другой. Так было и в моем случае.
Действия для пользователя root
Войдите в систему как root
Выполните
ssh-keygen -t dsa |
При запросе passphrase оставьте ее пустой.
В результате должно получиться два ключа в папке /.ssh: id_dsa и id_dsa.pub. Для пользователя root это будет папка /root/.ssh/
В конец файла добавьте сгенерированный ключ (Если делаете copy-paste, то убедитесь, что в конце файла есть пустая строка):
cat /root/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys |
Все файлы в папке /root/.ssh/ и сама папка должны иметь права доступа 700, владелец — root
В файле known_hosts вы должны увидеть строку (строки):
Важна пустая строка в конце файла.
Действия для пользователя pvo (который не имеет прав root)
Войдите в систему как пользователь pvo
Скорее всего вам придется создать папку /opt/pvo/.ssh/ и файл /opt/pvo/.ssh/ authorized_keys
Выполните команду
ssh-keygen -t dsa |
При запросе passphrase оставьте ее пустой.
Добавьте в файл сгенерированный ключ (Если делаете copy-paste, то убедитесь, что в конце файла есть пустая строка):
cat /opt/pvo/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys |
Если вы хотите выполнять команды от лица пользователя pvo войдя в систему как root, добавьте:
cat /root/.ssh/id_dsa.pub >> /opt/pvo/.ssh/authorized_keys |
Если вы хотите выполнять команды от лица пользователя pvo войдя в систему как root, добавьте (войдя в систему как root):
cat /opt/pvo/.ssh/id_dsa.pub >> /root/.ssh/authorized_keys |
Я не уверен, что этот шаг обязателен. Возможно кому-то он покажется небезопасным.
Я скопировал файл ‘known_hosts’ из /root/.ssh/ в /opt/pvo/.ssh/
Все файлы в папке /opt/pvo/.ssh/ и сама папка должны иметь права доступа 700, владелец – pvo
Что должно быть в файлах /root/.ssh/authorized_keys и /opt/pvo/.ssh/authorized_keys
В этих файлах должны быть строки из файлов /opt/pvo/.ssh/id_dsa.pub and /root/.ssh/id_dsa.pub
Важна пустая строка в конце файла
Команды для проверки работоспособности
Войдите как пользователь root, выполните:
ssh pvo@<hostname> ls /tmp |
ssh root@<hostname> ls /tmp |
Ожидаемый результат: не должно быть запросов пароля
Войдите как пользователь pvo, выполните:
ssh pvo@<hostname> ls /tmp |
ssh root@<hostname> ls /tmp |
– возможно это результат того самого небезопасного шага
Ожидаемый результат: не должно быть запросов пароля
Linux, Программирование shell