SSH - отличная технология; Вы можете использовать его, чтобы скрыть VPN-трафик, защитить подключение к веб-сайтам и многое другое. Единственная проблема заключается в том, что каждый раз, когда вы пытаетесь войти на удаленный компьютер, вы должны ввести свой пароль, и это может быть утомительно. Если вы разработчик и хотите подключиться сразу ко многим машинам через SSH с помощью сценария Bash, или просто кто-то, кто использует Secure Shell и устал вводить пароли, есть решение: SSH без пароля. Этот процесс включает в себя генерацию безопасного ключа SSH на хост-машине и передачу его в качестве способа доступа к ПК. Это позволит любому пользователю с ключом войти в систему, даже если он не знает пароля. Вот как это сделать.
Что такое SSH ключи?
Ключ SSH - это уникальный идентификационный файл, который используется с Secure Shell. Назначение этих ключей - предоставить пользователю уникальную идентификацию и пометить его как «доверенный» при входе в систему. Эти ключи сами по себе являются чем-то большим, чем просто файлы, подтверждающие личность кого-либо. Фактически, SSH позволяет пользователям входить с ключом, а не паролем. Это означает, что вместо того, чтобы вводить пароль каждый раз, когда вы входите через SSH, вы используете ключ SSH.
Ключ SSH надежно размещен в вашей установке Linux, и оттуда вы можете войти на удаленную машину столько раз, сколько захотите, без пароля.
Генерация безопасных ключей SSH
Генерация безопасного ключа SSH сначала требует, чтобы SSH был запущен и работал. Поймите, что это не обязательно означает, что вам нужен SSH-сервер. Просто на вашем компьютере с Linux работают базовые инструменты и технологии SSH. Не знаете, как настроить SSH? Следуйте нашему руководству здесь.
Всегда генерируйте ключи SSH в системе, в которой находится сервер SSH. Не пытайтесь сгенерировать их на сервере, не принимающем сеанс SSH, и скопируйте его на хост-компьютер SSH. Это не сработает.
Чтобы начать процесс генерации ключа, откройте терминал. Внутри окна терминала запустите:
ssh-keygen -t rsa
Бег SSH-серийник напечатает «Создание пары открытых / закрытых ключей RSA». Это означает, что система генерирует как открытый ключ, так и закрытый ключ для использования. Публичные ключи - это те, которые может использовать каждый, и вы должны отдавать их. С другой стороны, закрытый ключ - это то, что вы никогда не должны передавать никому. Отсюда и название «частный».

Ключи сохранятся на /главная / имя пользователя /.ssh / id_rsa.
Замечания: НЕ УДАЛЯТЬ ~ /.Ssh папка, так как она содержит ваши ключи. Если вы каким-либо образом вмешаетесь в эту папку, а затем попытаетесь войти в систему на этом компьютере удаленно, запрос SSH не будет выполнен. Он также напечатает предупреждение и заблокирует вас.
Ключи SSH на удаленной машине
Теперь, когда ключи SSH (как публичные, так и частные) созданы и готовы к использованию, вам нужно будет скопировать их в систему, в которую вы хотите войти. Важно, чтобы вы повторили этот процесс на всех машинах, на которые вы планируете войти через SSH. В противном случае те, у кого нет ключа, должны будут войти в систему, используя метод пароля.
Чтобы добавить ключи в удаленную систему, следуйте этому примеру. Убедитесь, что вы делаете это с хост-машины через SSH.
ssh username @ remote-host-name mkdir -p.ssh
Выполнение этой команды ssh создаст скрытый ~ /.Ssh папка в домашнем каталоге удаленного компьютера (с пользователем, который использовался для входа в систему). Эта папка важна, так как именно здесь мы будем копировать вновь созданные файлы ключей SSH.
Чтобы скопировать файлы ключей SSH, выполните еще одну команду с хост-машины SSH на удаленный компьютер, которому нужны ключи:
cat.ssh / id_rsa.pub | ssh username @ remote-host-name 'cat >>.ssh / authorized_keys'
Копирование займет несколько секунд, в зависимости от скорости сети. Когда он завершится, удаленный ПК получит сгенерированные ключи и сможет войти на хост-компьютер SSH без пароля.
Резервное копирование ключей SSH
Ключи SSH полезны, и каждый из них уникален. Именно поэтому их резервное копирование - лучший способ действий. Проблема в том, что если вы сохраните его в другом месте, кто-то может найти ваш SSH-ключ, сохраните его и используйте для себя. Итак, вопрос в том, что является хорошим способом надежного резервного копирования ключа SSH? Шифрование.
Самый быстрый, самый эффективный (и самый простой способ) для шифрования - это использование GnuPG. Сам инструмент встроен в большинство инструментов шифрования, уже существующих в Linux, и предназначен для шифрования файлов. Чтобы установить GnuPG, откройте терминал и найдите в вашем менеджере пакетов «gpg». Программу легко найти, даже в очень непонятных дистрибутивах Linux.

После запуска GPG запустите процесс шифрования, сжимая ~ /.Ssh каталог в файл архива tar. Это позволит избежать необходимости индивидуально шифровать каждый файл в ~ /.Ssh папка.
tar -czvf ssh-stuff.tar.gz /home/username/.ssh
Когда сжатие закончится, запустите процесс шифрования.

Примечание: перед шифрованием запустите GPG в терминале для генерации нового набора ключей.
gpg -c ssh-stuff.tar.gz
Когда процесс шифрования завершится, GnuPG выпустит файл с меткой « SSH-stuff.tar.gz.gpg «. Не стесняйтесь удалять оригинальную, разблокированную версию файла. Чтобы расшифровать ваш резервный архив, сделайте следующее:
gpg ssh-stuff.tar.gz.gpg