Отличная идея — войти на SSH-сервер без пароля. Серьезно, избавьтесь от этого. Нет необходимости использовать пароль на одном из наиболее атакуемых сервисов на серверах Linux, верно? Защита SSH-сервера использовать стандартную аутентификацию на основе пароля — плохая идея. Злоумышленники могут легко подобрать пароли, и когда они — единственное, что стоит между злоумышленником и вашим сервером, вам определенно следует нервничать.
Вот почему аутентификация на основе ключей RSA намного лучше. Вы можете настроить защитите свой Linux-сервер так, чтобы разрешить доступ только с компьютеров, на которых уже приняты ключи RSA. Всем остальным будет отказано сразу. В качестве дополнительного преимущества вы можете создавать эти ключи с паролем или без него, выбор зависит только от вас. Однако в большинстве случаев подойдет надежный ключ без пароля.
Если вы используете устройства Linux дома, у вас есть дополнительное преимущество — удобство. Предположим, вы хотите выполнить настроить SSH X-пересылку с рабочей станции Linux на ноутбук. Вы действительнохотите вводить свой пароль каждый раз, когда запускаете удаленную программу? Настройте ключи SSH, и вам это не понадобится.
Установить пакеты
Вам нужно несколько пакетов. Некоторые из них, вероятно, у вас уже есть, но стоит проверить. Пакеты одинаковы как на сервере, так и на клиенте. Однако существует также большая вероятность того, что обе машины являются серверами и клиентами друг для друга (домашняя ситуация), поэтому вам следует убедиться, что вы установили эти пакеты.
Метапакет OpenSSH не устанавливается по умолчанию ни в системах Debian, ни в Ubuntu. Если он у вас еще не установлен, вы можете сделать это, выполнив следующую команду:
sudo apt install ssh
![Ssh без пароля Linux 02 Установка Openssh](https://saintist.ru/wp-content/uploads/2024/05/ssh-passwordless-linux-02-installing-openssh.png)
Сгенерируйте свой SSH-ключ в Linux
В Linux получить ContentsСгенерируйте свой SSH-ключ в Linux
о исправить?
Установить пакеты
е свой SSH-ключ действительно легко. Просто сообщите OpenSSH, что вам нужно сгенерировать ключ. Также рекомендуется указать количество битов с помощью флага-b
и тип с помощью -t
. Лучше всего использовать ключ длиной 4096 бит, поскольку он обеспечивает более надежное шифрование.
ssh-keygen -t ed25519
Сначала утилита спросит, где вы хотите хранить ключ. Просто нажмите Enterдля выбора каталога по умолчанию. Когда он запрашивает пароль, оставьте его пустым для ключа без пароля и аутентификации без пароля. Если вы действительнохотите использовать пароль для своего ключа, введите его здесь.
Вашему компьютеру потребуется несколько секунд, чтобы сгенерировать ключ. По завершении он распечатает на терминале художественное представление вашего ключа в формате ASCII.
Отправка ключа на удаленный хост Linux
Чтобы использовать ключ, вам необходимо отправить его на удаленный сервер. В OpenSSH для этого есть еще одна встроенная утилита. Сообщите ему, где находится ваш ключ и с каким пользователем на сервере его связать.
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@ip_remote_host
Замените ip_remote_host
фактическим IP-адресом удаленного хоста, которым вы будете управлять через SSH. Замените username
фактическим именем пользователя на удаленном хосте.
![Ssh без пароля Linux 04 Идентификатор копирования Ssh](https://saintist.ru/wp-content/uploads/2024/05/ssh-passwordless-linux-04-ssh-copy-id.png)
Очень важно использовать параметр -i
для указания идентификационного файла, содержащего ваш открытый ключ. Если вы попытаетесь использовать ключ SSH без этой опции, вы можете получить сообщение об ошибке.
![Ssh без пароля Linux 05, успешное копирование](https://saintist.ru/wp-content/uploads/2024/05/ssh-passwordless-linux-05-successful-copy.png)
Проверка SSH-соединения в Linux
Поместив ключ SSH на удаленный сервер, вы теперь можете проверить, правильно ли работает ваше соединение.
Войдите в систему с помощью следующей команды:
ssh username@ip_remote_host
Удаленный хост войдет в систему, не запрашивая пароль учетной записи пользователя.
![Ssh без пароля Linux 06 Вход без пароля](https://saintist.ru/wp-content/uploads/2024/05/ssh-passwordless-linux-06-passwordless-login.png)
Однако, если вы допустили ошибку во время процесса, демон SSH автоматически вернется к аутентификации по паролю для вашей учетной записи пользователя. Это позволит вам получить доступ к удаленному серверу, даже если у вас неработающий ключ RSA.
![Ssh без пароля Linux 07 Не удалось войти в систему](https://saintist.ru/wp-content/uploads/2024/05/ssh-passwordless-linux-07-failed-login.png)
Настройка SSH для блокировки паролей
Для обеспечения максимальной безопасности вам необходимо отключить вход по паролю SSH на вашем сервере Linux. Как и в случае с включение двухфакторной аутентификации в SSH , это предотвращает возможность взлома ва