SSH-ключ предоставляет возможность устанавливать соединение по протоколу SSH с удаленным хостом не вводя пароль. Зачем? По ходу работы, администрирования сайтов, необходимо часто соединяться с одними и теми же удалёнными хостами, набирая в консоли команду на соединение и пароля. Чтобы не набирать пароль многократно, но при этом устанавливать безопасное соединение нужно создать ssh-ключ.
- В консоли, на своём ПК пишем:
1 2 |
ssh-keygen -t rsa -b 4096 ssh-add ~./.ssh/id-rsa |
Нам предложат задать имя файла, пропускаем нажимая ENTER:
1 2 |
Generating public/private rsa key pair. Enter file in which to save the key (/home/skytal/.ssh/id_rsa): |
Небольшое отступление: если задать своё имя для файлов ключей, то после создания публичного и приватного ключей необходимо отдельно сообщить приватный ключ системе:
1 |
ssh-add name_key |
Продолжаем, в следующем запросе вас попросят ввести секретную фразу, дважды во избежание ошибок, она будет запрашиваться при установке соединения к удалённому хосту. Если не хотим, то просто нажимаем ENTER:
1 2 |
Enter passphrase (empty for no passphrase): Enter same passphrase again: |
2. Проходим в папку .ssh, и видим в ней два файла:
id_rsa — приватный ключ
id_rsa.pub — публичный ключ, который загружаем на хост, с которым хотим устанавливать соединение
Загрузив id_rsa.pub на удалённый хост, с которым хотим устанавливать соединение, его необходимо сохранить в папку .ssh и переименовать в authorized_keys. Если такой файл уже существует, то нужно добавить в его конец содержимое id_rsa.pub:
1 |
cat id_rsa.pub >> authorized_keys |
3. На этом всё, теперь вы можете установить соединение без пароля:
1 |
ssh user@host |
и без лишних вопросов устанавливается безопасное соединение с удаленным host’ом.