SSH — защищённый протокол удалённого доступа к серверу. Для входа используют команду ssh user@host; файл ~/.ssh/authorized_keys на сервере содержит публичные ключи, которым разрешена аутентификация для конкретного пользователя.
SSH — защищённый протокол удалённого доступа к серверу. Для входа используют команду ssh user@host; файл ~/.ssh/authorized_keys на сервере содержит публичные ключи, которым разрешена аутентификация для конкретного пользователя.
Подключение по SSH
Для подключения указывают имя пользователя и IP-адрес либо доменное имя сервера.
ssh alex@203.0.113.10
ssh alex@example.com
ssh -p 2222 alex@example.comФлаг -p нужен, если SSH-сервер слушает порт, отличный от стандартного 22.
Аутентификация по ключу
SSH-ключи состоят из приватной и публичной части. Приватный ключ остаётся на компьютере пользователя, а публичный ключ добавляют на сервер. При подключении сервер проверяет, может ли клиент подтвердить владение приватным ключом.
ssh-keygen -t ed25519 -C "alex@example.com"
ssh-copy-id alex@example.com
ssh -i ~/.ssh/id_ed25519 alex@example.comЧто такое authorized_keys
Файл ~/.ssh/authorized_keys находится на сервере в домашней директории пользователя. Каждая строка обычно содержит один разрешённый публичный SSH-ключ. Если соответствующий приватный ключ есть у клиента, SSH-сервер может разрешить вход.
cat ~/.ssh/authorized_keys
mkdir -p ~/.ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keysРучное добавление ключа
cat ~/.ssh/id_ed25519.pub | ssh alex@example.com "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"SSH config
Для удобства можно сохранить параметры подключения в ~/.ssh/config.
Host production
HostName 203.0.113.10
User deploy
IdentityFile ~/.ssh/id_ed25519
Port 22После этого подключение выполняется короткой командой ssh production.
Безопасность
Приватный ключ нельзя передавать другим людям или добавлять в Git. На production-серверах обычно используют ключи вместо паролей, ограничивают SSH-доступ firewall-правилами и отключают прямой вход root по SSH при отсутствии необходимости.
Как ответить на собеседовании
На сервер подключаюсь командой ssh user@host. Для key-based authentication генерирую пару ключей, оставляю приватный ключ локально, а публичный добавляю на сервер в ~/.ssh/authorized_keys. Проверяю права: обычно .ssh имеет режим 700, а authorized_keys — 600.
Оцени свой прогресс