Полный цикл в digital

SSH-ключи

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

  • Открытая, кладётся на сервер в домашний каталог пользователя, под которым заходят на сервер
  • Закрытая, кладётся на компьютер в домашний каталог пользователя, который идёт на удалённый сервер

Половинки сравниваются и если всё хорошо, происходит соединение.

Важно понимать, авторизуется не только клиент на сервере, но и сервер по отношению к клиенту. Главной особенностью ключа по сравнению с паролем является то, что его нельзя украсть, взломав сервер ключ не передаётся с клиента на сервер, а во время авторизации клиент доказывает серверу, что владеет ключом, та самая криптографическая магия.

Генерация ключа

Свой ключ можно сгенерировать с помощью команды:

ssh-keygen

Ключ можно закрыть паролем, пароль спрашивается один раз и сохраняется некоторое время. Если пароль указать пустым, он спрашиваться при использовании не будет. Восстановить забытый пароль невозможно. Сменить пароль на ключ можно с помощью команды:

ssh-keygen -p

Структура ключа

~/.ssh/id_rsa.pub открытый ключ. Его копируют на сервера, куда нужно получить доступ.

~/.ssh/id_rsa закрытый ключ. Его нельзя никому показывать. Если вы в письмо/чат скопипастите его вместо pub, то нужно генерировать новый ключ.

Копирование ключа на сервер

В каталоге пользователя, под которым вы хотите зайти на сервер, если создать файл ~/.ssh/authorized_keys и положить туда открытый ключ, то можно будет заходить без пароля. Обратите внимание, права на файл не должны давать возможность писать в этот файл посторонним пользователям, иначе ssh его не примет.

В ключе последнее поле user@machine. Оно не имеет никакого отношения к авторизации и служит только для удобства определения где чей ключ. Заметим, это поле может быть поменяно (или даже удалено) без нарушения структуры ключа.

Если вы знаете пароль пользователя, то процесс можно автоматизировать, команда позволяет скопировать ключ не редактируя файлы вручную:

ssh-copy-id user@server

Пример боевой команды:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@server.beget.tech
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг