Беспарольный SSH в Linux

Беспарольный SSH в Linux

Хороший администратор сервера использует несколько надежных паролей, которые трудно запомнить, однако вводить каждый из них при обращении к удаленным серверам сложно и неудобно. Чтобы решить эту проблему, можно использовать беспарольный SSH. Давайте разберемся, как его настроить в Linux.

Еще по теме: Получение уведомления на почту о входе по SSH

Что такое беспарольный SSH

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

Процедура аутентификации работает следующим образом:

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

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

Клиент получает сообщение от сервера. После получения сообщения клиент пытается расшифровать его с помощью закрытого ключа. Если клиент расшифрует сообщение с помощью закрытого ключа, сервер обнаружит это, и соединение с SSH-сервером будет установлено.

Если клиент не может расшифровать сообщение, отправленное сервером, то процесс соединения с сервером прерывается.

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

Беспарольный SSH обладает рядом преимуществ по сравнению с традиционными методами входа в систему, основанными на паролях. Вот некоторые из наиболее важных преимуществ, которые делают использование SSH без пароля целесообразным:

Удобный и безопасный вход в систему

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

Автоматизация задач резервного копирования

Используя Rsync и другие утилиты, можно автоматизировать задачу еженедельного резервного копирования содержимого, создаваемого в офисе в США, и сохранения его в офисе, расположенном в Китае. Процесс будет зашифрован по протоколу SSH и полностью автоматизирован, поскольку вам не придется вводить пароль.

Монтирование удаленной файловой системы

SSH без пароля полезен, если необходимо смонтировать удаленную файловую систему с помощью SSHFS. Получив доступ к SSHFS-серверу без пароля, мы можем заставить SSHFS-сервер монтировать себя при запуске клиента.

Кроме того, многие git-серверы используют аутентификацию по открытым ключам SSH. Поэтому пара асимметричных ключей, созданная для подключения к SSH-серверу, может использоваться и в других целях, например, для аутентификации при подключении к Git-серверу.

Настройка беспарольного входа SSH в Linux

Чтобы настроить беспарольный вход SSH в Linux, выполните следующие шаги.

Убедитесь, что установлены SSH-сервер и клиен.

Прежде всего необходимо убедиться, что на системе, которая будет выступать в качестве сервера, установлен SSH-сервер. Для этого нужно открыть терминал и ввести следующую команду:

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

В настоящее время в большинстве дистрибутивов Linux по умолчанию установлены SSH-клиент и сервер.

Создание асимметричных ключей.

Убедившись, что SSH-сервер и клиент имеют необходимые пакеты, можно сгенерировать асимметричные ключи для доступа к SSH-серверу без ввода пароля.

Для этого на компьютере, который будет выступать в роли клиента, необходимо открыть терминал и ввести следующую команду:

Где:

  • ssh-keygen — это команда, которая генерирует пару ключей.
  • -b 4096 — вы указываете, что генерируемый асимметричный ключ имеет размер 4096 бит (можно выбрать 1024 или 2048).
  • -t rsa — указывает, что алгоритм, используемый для генерации пары ключей, должен быть RSA. (можно использовать другие алгоритмы: DSA, ECDSA, RSA1 и ED25519).

Сразу после выполнения команды появится запрос на указание места хранения ключей и имени, которое вы хотите им присвоить. Просто нажмите клавишу Enter. Таким образом, ключи будут сохранены в стандартном месте, т.е. /home/ user /.ssh/, и будут иметь стандартное имя id_rsa.

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

В заключение предлагается повторно ввести пароль. Поскольку мы не вводили никакого пароля, нажмите клавишу Enter еще раз.

Настройка беспарольного SSH Linux

После выполнения этих действий асимметричные ключи будут созданы в каталоге ~/.ssh.

Копирование открытого ключа SSH на удаленный сервер.

Для организации беспарольного доступа по SSH существует два типа SSH-ключей: несекретный открытый ключ (public key) и секретный ключ (private key), id_rsa — это ваш закрытый ключ, а id_rsa.pub — открытый ключ.

Открытый ключ необходимо скопировать на удаленный сервер с помощью команды ssh-copy-id, либо вручную.

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

Следующий пример может быть более понятным:

Беспарольный вход SSH Linux настройка

Альтернативным вариантом является вход на удаленный сервер и создание текстового файла в каталоге ~/.ssh, например, путем выполнения следующей команды.

Скопируйте содержимое файла ~/.ssh/id_rsa.pub на локальной машине в этот файл, сохраните его и выйдите из текстового редактора.

Копирование открытого ключа SSH на удаленный сервер.

Проверка беспарольного доступа по SSH

Чтобы проверить, работает ли беспарольный SSH, просто попробуйте получить доступ к SSH-серверу:

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

Отключение беспарольного входа в систему SSH в Linux

Для отключения входа в систему без пароля откройте конфигурационный файл SSH с помощью текстового редактора. В большинстве дистрибутивов конфигурационный файл находится здесь:

Найдите строку PermitEmptyPasswords yes и измените ее на PermitEmptyPasswords no.

Сохраните изменения в конфигурационном файле и выйдите из текстового редактора.

Перезапустите SSH:

Заключение

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

ПОЛЕЗНЫЕ ССЫЛКИ:

QUASAR

Этичный хакер: компьютерный ниндзя и мастер цифровых тайн.

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