ssh и все такое

статья про создание ключа ssh, добавление его на удаленный сервер и профил ssh для этого

Создание SSH-ключа, добавление его на удалённый сервер и настройка SSH-профиля — базовая практика для безопасного и удобного удалённого доступа. Ниже подробная инструкция в виде статьи.


Создание SSH-ключа, добавление на сервер и настройка профиля SSH

1. Генерация SSH-ключа

SSH-ключ позволяет аутентифицироваться на сервере без пароля, используя криптографию.

Открой терминал на локальной машине и выполни команду:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • -t rsa — тип ключа RSA (можно использовать также ed25519 при поддержке).
  • -b 4096 — длина ключа (чем больше, тем безопаснее).
  • -C — комментарий для идентификации (обычно email).

При выполнении команда спросит, куда сохранить ключ (по умолчанию ~/.ssh/id_rsa), можешь принять значение по умолчанию нажатием Enter.

По желанию введи парольную фразу (passphrase) для повышения безопасности — при каждом использовании ключа потребуется ввод этого пароля.

После генерации в папке ~/.ssh/ появятся два файла:

  • id_rsa — приватный ключ (хранить в секрете!).
  • id_rsa.pub — публичный ключ, который нужно добавить на сервер.

2. Добавление публичного ключа на удалённый сервер

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

Есть удобная команда:

ssh-copy-id user@remote-server

Она автоматически скопирует содержимое ~/.ssh/id_rsa.pub на сервер и добавит в ~/.ssh/authorized_keys.

Если ssh-copy-id недоступна, сделай это вручную:

  • Скопируй публичный ключ:
cat ~/.ssh/id_rsa.pub
  • Подключись к серверу:
ssh user@remote-server
  • Если папки .ssh нет, создай её:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
  • Добавь публичный ключ:
echo "вставь_сюда_содержимое_id_rsa.pub" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

3. Настройка профиля SSH клиента (~/.ssh/config)

Чтобы не писать каждый раз полный адрес, пользователя и путь к ключу, создай или отредактируй файл ~/.ssh/config:

Host myserver
    HostName remote-server.example.com
    User user
    Port 22
    IdentityFile ~/.ssh/id_rsa
    ForwardAgent yes
  • Host myserver — псевдоним для подключения.
  • HostName — реальный адрес сервера.
  • User — имя пользователя на сервере.
  • Port — порт SSH (22 по умолчанию).
  • IdentityFile — путь к приватному ключу.
  • ForwardAgent — позволяет агенту передавать ключ при ssh-переходах (опционально).

Теперь подключиться можно командой:

ssh myserver

без указания пользователя, адреса и ключа.


Итоги и безопасность

  • Приватный ключ надо хранить в безопасности — он даёт полный доступ.
  • Пользуйся паролем для ключа, если опасаешься кражи.
  • Если потерял ключ или подозреваешь компрометацию — удаляй соответствующую строку из authorized_keys на сервере.
  • Рекомендуется использовать современный тип ключа ed25519: ssh-keygen -t ed25519 -C "email"

Эта процедура — базис для безопасной работы с серверами и автоматизации, например, деплоя сайтов с помощью rsync и других средств по SSH.

Если нужен пример скрипта или помощь с конкретной системой — обращайтесь.

links

social