Вход без пароля с помощью ключей SSH

Для подключения к Linux северам с Windows компьютеров очень часто рекомендуют использовать программу PyTTY. Это небольшая бесплатная утилита с открытым исходным кодом для Windows, которая позволяет выполнять подключения по протоколам SSH, Telnet или rlogin, а также работать через последовательный порт (Serial).

Генерация ключа

Для генерации используется утилита ssh-keygen Генерировать можно или DSA-ключи (длина ключа всегда 1024 бита) или RSA-ключи (по умолчанию длина ключа 2048 бит). На выходе в каталоге ~/.ssh/ будет два файла id_dsa и id_

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

ssh-keygen -t rsa -b 4096 -N ""

параметр -b 4096 – меняем длину, -N с пустой строкой — отключаем запрос парольной фразы

Файл id_rsa (id_dsa) — секретный ключ (остаётся у клиента). Файл id_ (id_) — открытый ключ (раздаётся серверам, на которые хотим заходить без ввода пароля).

Открытый ключ

На удаленном хосте, к которому мы будем подключаться, тоже надо выполнить некоторые действия:

На этом почти все. Осталось проверить. Проверяем:

ssh -i ./.ssh/id_dsa -p 22

123 ssh i ./.ssh/id_dsa p 22

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

Теперь вы сможете использовать выполнение команд на удаленных хостах в ваших скриптах с использованием авторизации по ключу без участия пользователя.

Как импортировать ключ на MikroTik, написано в статье MikroTik SSH key.

Как подключиться к серверу по SSH по ключу через PuTTY

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

Но, для того чтобы подключиться к серверу по SSH с использованием ключей, эти ключи нужно сначала сгенерировать. Для этого понадобится программа PuTTYgen (PuTTY Key Generator), которая устанавливается в систему вместе с программой PuTTY. Для генерации ключей запускаем PuTTYgen, выбираем тип ключей «RSA» и нажимаем на кнопку «Generate». После этого нужно подвигать мышкой в окне программы PuTTYgen для того, чтобы создать случайные данные, которые будут использованы для создания ключей.

Как подключиться к серверу по SSH по ключу через PuTTY

Обратите внимание, если у вас уже есть ключ, который был сгенерирован с помощью OpenSSH, то вы можете загрузить его в программу PuTTYgen и сконвертировать в формат понятный программе PuTTY.

После того как ключи будут созданы, приватный ключ нужно сохранить на диск с помощью кнопки «Save private key». При этом приватный ключ можно дополнительно защитить с помощью ключевой фразы, которую нужно ввести в поле «Key passphrase», хотя это не обязательно.

Что касается публичного ключа, то его нужно скопировать в буфер обмена. Также его можно сохранить на диск с помощью кнопки «Save public key». В дальнейшем этот файл пригодится для настройки других серверов.

Как подключиться к серверу по SSH по ключу через PuTTY

Теперь нужно записать публичный ключ на сервер, в конец файла «authorized_keys» в папке «.ssh» в вашей домашней директории. Для этого подключитесь к серверу по SSH с помощью PuTTY используя логин и пароль. После этого откройте папку «.ssh» в вашей домашней директории:

cd ~/.ssh

Дальше необходимо записать ранее созданный публичный ключ в конец файла «authorized_keys». Если такой файл отсутствует, то его нужно создать. Это можно сделать при помощи команды «cat». Для этого нужно выполнить следующую команду:

Как подключиться к серверу по SSH по ключу через PuTTY

cat > authorized_keys

После выполнения данной команды вставляем публичный ключ из буфера обмена (правая кнопка мышки) и сохраняем файл нажатием Ctrl-D.

Также вы можете создать и отредактировать файл «authorized_keys» с помощью текстового редактора. Например, в Ubuntu можно использовать программу Nano.  Для этого нужно выполнить команду:

Как подключиться к серверу по SSH по ключу через PuTTY

nano ~/.ssh/authorized_keys

Более подробно о создании текстовых файлов можно почитать в отдельной статье «Как создать текстовый файл через терминал».

После того как публичный ключ был скопирован на сервер, вы можете использовать оставшийся приватный ключ для подключения к серверу по SSH. Для этого запустите программу PuTTY и введите IP адрес и порт в разделе «Session».

Как подключиться к серверу по SSH по ключу через PuTTY

После этого перейдите в раздел «Connection – SSH – Auth» и укажите путь к приватному ключу, который был сгенерирован и сохранен с помощью программы PuTTYgen. Когда все будет готово можно запускать подключение с помощью кнопки «Open».

Если все было настроена правильно, то перед подключением вы увидите запрос на ввод логина и ключевой фразы (если она использовалась). После ввода этих данных вы будете авторизованы без использования пароля.

После завершения настройки подключения с помощью ключей, вход по паролю в целях безопасности нужно отключить. Для этого на сервере нужно открыть файл «/etc/ssh/sshd_config», установить значение «PasswordAuthentication no» и перезапустить службу «sshd» с помощью команды «systemctl restart ssh».

Шаг 4: Защита демона sshd

После установки сервера SSH, первым делом исправить файл sshd_config. В нем запретить удалённый доступ пользователя root и разрешить доступ только для доверенных пользователей. Настраиваем от непривилегированного пользователя, используя sudo.

Первое действие перед правкой любого файла — это бекап этого файла, делаем:

[email protected]:~$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_ [sudo] password for remuserbak:

Посмотреть текущее настройки демона ssh

sudo sshd -T

Отключение SSH-логин для пользователя root, используя параметр PermitRootLogin no.

[email protected]:~$ sudo nano /etc/ssh/sshd_config # Authentication: PermitRootLogin no # запретить удалённый доступ для root AllowUsers user1 user2 # список пользователей, которым разрешён доступ по SSH

После внесения изменений в sshd_config — перегружаем демона SSH

$ sudo systemctl restart

Теперь при попытке залогинеться с пользователем root, в логах вы увидите запись:

User root from not allowed because not listed in AllowUsers

Всё, у вас демон SSH минимально защищен!

Дополнительные параметры sshd_config, которые можно менять, под ваши задачи и условия, но не делайте это без нужды и предварительно изучите руководство man 5 sshd_config

  • LoginGraceTime 120: Сервер отключается по истечении этого времени, если пользователю не удалась регистрация в системе. Если стоит значение 0, то время ожидания не ограничено. Значение по умолчанию — 120 секунд.
  • StrictModes yes: Проверять наборы прав доступа и принадлежность конфигурационных файлов и домашнего каталога пользователя перед разрешением регистрации в системе. Это рекомендуется выполнять потому, что новички иногда оставляют свои каталоги или файлы доступными для записи всем. Значение по умолчанию — yes.
  • AddressFamily inet: Семейство адресов которое должна использовать служба sshd, допустимые значения: any, inet (только IPv4) и inet6 (только IPv6). Значение по умолчанию — any.
  • Port 22: Порт, на котором следует ожидать запросы на ssh соединение. Значение по умолчанию — 22.

Входим в систему

Для входа в систему воспользуемся, как я уже упоминал, PuTTY. Создадим новое подключение, указав IP-адрес и порт, затем перейдём на следующую вкладку:

Входим в систему

Раздел “Connection -> SSH -> Auth”, в поле “Private key file for authentication” добавим наш приватный ключ. Жмём “Open”.

После появления стандартного диалогового окна добавляем ключ в кеш.

Входим в систему

В окне терминала введём имя пользователя “dmitry” и сразу (без пароля!) попадаем в консоль Mikrotik.Для обеспечения наилучшей безопасности, конечно, хорошо бы использовать пароль на ключ (во время генерации ключа указывается). Но это уже детали!

Всем удачи! Be secure!

Входим в систему

Если вам понравилась данная статья – поставьте лайк! Так я буду знать стоит ли писать ещё на данную тематику. Лучшая награда писателя – отклик от читателей. Заранее благодарю.

Вам так же понравится: Mikrotik что это? MUM 2016 во Владивостоке! Встреча пользователей MikroTik Mikrotik на виртуальной машине Обучение работы с оборудованием Mikrotik Открываем магазин сетевого оборудования Mikrotik в Делаем хранилище версий (subversion) на Linux для совместной работы (SVN)

Как включить ssh вход без ввода пароля

1 декабря стартует курс » Тестирование Веб-Приложений на проникновение » от команды codeby . Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, активный фаззинг, уязвимости, пост-эксплуатация, инструментальные средства, Social Engeneering и многое другое. На курс можно записаться до 5 декабря включительно. Подробнее .

Допустим вы пользователь «A» на хосте host A, и хотите подключиться по ssh к хосту host B как пользователь «B» без ввода его пароля на хосте host B. Следуйте этой инструкции для включения ssh хода без ввода пароля.

В первую очередь, вам нужно залогиниться как пользователь «A» на хосте host A.

Создайте открытый/закрытый rsa ключи используя ssh-keygen. Сгенерированная пара ключей будет помещена в каталог

Затем создайте директорию

/.ssh на аккаунте B на хосте host B запустив следующую команду. Этот шаг может быть опущен, если .ssh директория уже есть на [email protected]

Наконец скопируйте публичный ключ пользователя «A» на хост host A в [email protected] для включения безпарольного ssh.

С этого места вам больше не нужно печатать пароль в ssh в [email protected] из [email protected]

Читайте также:  Как удалить файлы и каталоги в терминале Linux