Вход по ssh без пароля для Linux

Как настроить защищенный вход по ssh без ввода пороля

Задача:
Необходимо войти с машины A (Linux) на машину B (Linux c OpenSSH) без ввода пароля используя SSH.

Дано:
Пользователь «username» на машине B, который имеет доступ по SSH.

Зачем это нужно:
Если честно, во всем всегда виновата лень) Я использую rsync для обновления сайта. Решил автоматизировать процесс обновления из среды emacs, т.к. надоело вводить каждый раз пароль при подключении по ssh к удаленному хосту вот и автоматизировал все на нажатие клавиши F11.

*Если будет интерестно, как использовать rsync и автоматизировать этот процесс в emacs опишу позже.

Сегодня мы рассмотрим первый этап моего «Зачем это нужно». Многие на этом могут остановиться, т.к. им будет достаточно автоматического входа на удаленных хост по ssh используя пару публичный/приватный ключи, которые мы сгенерируем сами.

Приступим к настройки входа по ssh без использования пароля:

  1. Сгенерируем пару ключей на машине А.
    -вводим команду

    ssh-keygen -t rsa
    SSH Keygen

    SSH Keygen для входа на удаленный хост без пароля

    -оставляем имя выходного файла по умолчанию (/home/mota/.ssh/id_rsa)
    -жмем ввод на запрос «фраза-пароль»
    -еще раз жмем ввод для подтверждения пустой «фраза-пароль»

  2. Теперь нам потребуется пользователь с доступом к целевой машине по ssh (username на машине B), чтобы создать в домашней директории пользователя на машине B папку «.ssh». Можно сделать это удаленно используя команду:
    ssh username@henry-motu.org.ua mkdir -p .ssh

    где «username» — пользователь на целевой машине Б,а «henry-motu.org.ua» — это имя целевой машины B (вместо имени машины можно использовать IP адрес целевой машины).

    Mkdir ssh

    Создание директории .ssh на удаленном хосте

     

  3. Теперь зальем новый «ПУБЛИЧНЫЙ» ключ в файл .ssh/authorized_keys на целевой машине B (на henry-motu.org.ua)
    cat ~/.ssh/id_rsa.pub | ssh username@B.domain.com 'cat >> ~/.ssh/authorized_keys'

    SSH заливаем публичный ключ на удаленный хост

    SSH заливаем публичный ключ на удаленный хост

  4. Пробуем подключиться
    ssh username@B.domain.com

    Вход по ssh без пароля

    Вход по ssh без пароля

  5. Вот и все.

Базовый курс криптографии в данной статье не освещен, но для обеспечения безопасности при использованием несиметричной криптографии (когда есть пара публичный ключ и приватный ключ) следует держать в секрете приватный ключ. В нашем случае оба ключа находятся в директории /home/mota/.ssh/ (id_rsa — приватный, id_rsa.pub — публичный, а mota — текущий пользователь на машине A).
В дальнейшем, для подключения на другие удаленные машины, следует повторить  2-4 этапы.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *