img

Как настроить SSH вход без пароля

SSH (Secure Shell) обеспечивает безопасное удаленное соединение между двумя системами. С помощью этого криптографического протокола вы можете управлять машинами, копировать или перемещать файлы на удаленном сервере через зашифрованные каналы.

icon strelka icons icons

узнай больше на курсе

Онлайн-курс по Linux
Курс по Linux от Мерион Нетворкс - стань Linux администратором, прокачай свой скиллсет умением работать с операционными системами линукс и сделай большой шаг к DevOps
Подробнее о курсе
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Подробнее о курсе
DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Подробнее о курсе

Существует два способа входа в удаленную систему через SSH - с использованием аутентификации по паролю или аутентификации с открытым ключом (вход SSH без пароля).

В этом руководстве вы узнаете, как настроить и включить вход по SSH без пароля.

Как настроить SSH вход без пароля

Подготовка

Нам необходимо:

  • Доступ к командной строке или окну терминала
  • Пользователь с привилегиями sudo или root
  • Локальный сервер и удаленный сервер
  • Доступ по SSH к удаленному серверу через командную строку или окно терминала

Перед тем как начать проверьте существующие ключи SSH. Возможно, на вашем компьютере уже есть пара ключей SSH. Чтобы узнать, есть ли у вас в системе ключи SSH, выполните команду:

ls -al ~/.ssh/id_*.pub	

Если в выводе указано, что таких файлов нет, переходите к следующему шагу, который показывает, как сгенерировать ключи SSH. Если они у вас есть, вы можете использовать существующие ключи, сделать их резервную копию и создать новую пару или перезаписать ее.


Шаг 1. Создайте пару ключей SSH

1. Первое, что вам нужно сделать, это сгенерировать пару ключей SSH на машине, на которой вы сейчас работаете.

В этом примере мы генерируем 4096-битную пару ключей. Мы также добавляем адрес электронной почты, но это необязательно. Команда такая:

ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

2. Затем введите место, где вы хотите сохранить ключи, или нажмите Enter, чтобы принять путь по умолчанию.

3. Также вам будет предложено установить кодовую фразу. Хотя это делает соединение еще более безопасным, оно может прерываться при настройке автоматизированных процессов. Поэтому вы можете ввести пароль или просто нажать Enter, чтобы пропустить этот шаг.

Passphrase

4. Затем в выводе сообщается, где хранятся идентификационный и открытый ключ, а также выдается отпечаток ключа.

Fingerprint

5. Убедитесь, что вы успешно создали пару ключей SSH, выполнив команду:

ls -al ~/.ssh/id_*.pub

Вы должны увидеть путь идентификационного ключа и открытого ключа, как на скриншоте ниже:

Путь идентификационного ключа

Шаг 2. Загрузите открытый ключ на удаленный сервер

Вы можете загрузить публичный SSH-ключ на удаленный сервер с помощью команды ssh-copy-id или команды cat.

Вариант 1. Загрузить открытый ключ с помощью команды ssh-copy-id

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

1. Подключитесь к удаленному серверу и используйте команду ssh-copy-id:

ssh-copy-ide [remote_username]@[server_ip_address]

2. Открытый ключ автоматически копируется в файл .ssh/authorized_keys.

Вариант 2: загрузить открытый ключ с помощью команды cat

Другой способ скопировать открытый ключ на сервер - использовать команду cat.

1. Начните с подключения к серверу и создания на нем каталога .ssh.

ssh [remote_username]@[server_ip_address] mkdir -p .ssh

2. Затем введите пароль для удаленного пользователя.

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

cat .ssh/id_rsa.pub | ssh [remote_username]@[server_ip_address] 'cat >> .ssh/authorized_keys'

Шаг 3. Войдите на сервер без пароля

После создания пары ключей SSH и загрузки открытого ключа на удаленный сервер вы должны иметь возможность подключаться к выделенному серверу без ввода пароля.

Проверьте, работает ли установка, выполнив команду:

ssh [remote_username]@[server_ip_address]

Система должна напрямую входить в систему на удаленном сервере, пароль не требуется.

Примечание: убедившись, что вы можете подключаться к удаленному серверу SSH без пароля, рассмотрите возможность полного отключения аутентификации по паролю SSH. Это добавит еще один уровень безопасности и защитит ваш сервер от bruteforce атак.

Дополнительно: Устранение неполадок с разрешениями файлов удаленного сервера

Права доступа к файлам на удаленном сервере могут вызвать проблемы с входом в SSH без пароля. Это обычная проблема со старыми версиями SSH.

Если после выполнения всех шагов вам все еще предлагается ввести пароль, начните с редактирования прав доступа к файлам на удаленном сервере.

  • Установите разрешения 700 для каталога .ssh.
  • Установите разрешения 640 для каталога .ssh/authorized_keys.

Отредактируйте права доступа к файлу с помощью следующей команды:

ssh [remote_username]@[server_ip_address] "chmod 700 .ssh; chmod 640 .ssh/authorized_keys"

При появлении запроса введите свой пароль. Если действие было успешным, вывода не будет.


Итог

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

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
icon strelka icons icons

узнай больше на курсе

Онлайн-курс по Linux
Курс по Linux от Мерион Нетворкс - стань Linux администратором, прокачай свой скиллсет умением работать с операционными системами линукс и сделай большой шаг к DevOps
Подробнее о курсе
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Подробнее о курсе
DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Подробнее о курсе
Python программист с нуля
Стань разработчиком на одном из самых популярных языков программирования - Python
Подробнее о курсе
Онлайн-курс по кибербезопасности
Полный курс по кибербезопасности от Мерион Нетворкс - учим с нуля специалистов по информационной безопасности. Пора стать безопасником!
Подробнее о курсе
Онлайн-курс по сетевой безопасности
Изучи основы сетевой безопасности и прокачай скилл системного администратора и сетевого инженера
Подробнее о курсе
Еще по теме:
img
Узнайте про 5 полезных Linux - команд: tldr, timeout, ncdu, fd и trash, которые упрощают жизнь при работе в CLI
img
Что позволяет называть один API как REST API, а другой нет? Сейчас попробуем разложить все по полочкам, чтобы ты на собесе жидко не споткнулся о такую, казалось бы, простую тему.
img
Узнайте, как работают сетевые порты в Linux, какие бывают типы портов, и как управлять ими с помощью команд netstat, ss, ufw и iptables
img
Рассказываем, как появился nginx, его отличия от apache, для чего нужен nginx и какие у него преимущества
img
В этом руководстве вы узнаете, как установить и настроить Fail2ban на своем сервере.
ЛЕТНИЕ СКИДКИ
30%
40%
50%
До конца акции: 30 дней 24 : 59 : 59