Гид по технологиям

Настройка SSH без пароля с помощью ssh-copy-id

4 min read DevOps Обновлено 17 Dec 2025
SSH без пароля: ssh-copy-id — быстро и безопасно
SSH без пароля: ssh-copy-id — быстро и безопасно

Руки печатают на ярко‑синей клавиатуре планшета Surface

Зачем нужен вход по SSH без пароля

Парольный вход по SSH работает, но при частых подключениях ввод пароля раздражает и замедляет работу. Аутентификация по ключам решает эту проблему: ваша система использует приватный ключ локально, а сервер — публичный ключ для проверки личности. Это повышает удобство и, при правильной настройке, безопасность.

Краткое определение: SSH‑ключ — это пара ключей: приватный (хранится локально) и публичный (копируется на сервер).

Как это работает

  1. Вы генерируете пару ключей на своём компьютере (ssh-keygen).
  2. Копируете публичный ключ в файл authorized_keys на сервере (ssh-copy-id или вручную).
  3. При попытке подключения сервер проверяет, соответствует ли приватный ключ публичному в authorized_keys. Если да — вход разрешён без пароля.

Создание публичного и приватного SSH‑ключей

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

ssh-keygen

Нажимайте Enter, чтобы принять значения по умолчанию, или укажите путь/парольную фразу (passphrase) для дополнительной защиты приватного ключа. Файлы по умолчанию: ~/.ssh/id_rsa (приватный) и ~/.ssh/id_rsa.pub (публичный).

Запуск ssh-keygen в терминале для генерации пары ключей SSH

Важно: используйте надёжную парольную фразу для приватного ключа, если ключ не защищён аппаратно (например, с помощью аппаратного токена).

Добавление публичного ключа на сервер

Самый простой способ — команда ssh-copy-id. Введите в терминале:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote-host

Замените user и remote-host на ваше имя пользователя и адрес сервера (IP или домен). Команда добавит содержимое файла id_rsa.pub в ~/.ssh/authorized_keys на сервере и настроит права доступа.

Выполнение ssh-copy-id в терминале для установки публичного ключа на сервер

Если ssh-copy-id отсутствует, можно подключиться и вручную добавить ключ:

cat ~/.ssh/id_rsa.pub | ssh user@remote-host 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys'

Подключение к серверу без пароля

Проверка подключения:

ssh user@remote-host

Если всё настроено правильно, вы попадёте на сервер без запроса пароля (либо с запросом парольной фразы ключа, если вы её установили).

Вход на удалённый сервер по SSH через терминал

Когда это может не сработать

  • На сервере отключена аутентификация по ключам (PubkeyAuthentication no).
  • Права на директорию ~/.ssh или файл authorized_keys неправильные — сервер отвергнет ключ.
  • Вы используете нестандартный путь к ключу; ssh по умолчанию ищет ключи в ~/.ssh.
  • На сервере настроен строгий список allowed users/hosts или включены дополнительные PAM‑правила.

Альтернативные подходы

  • ssh-agent + ssh‑add: хранит приватный ключ в памяти и позволяет не вводить парольную фразу каждый раз.
  • Hardware security keys (YubiKey, SoloKey) для хранения приватного ключа в аппаратном модуле.
  • Использовать конфигурационный файл ~/.ssh/config для указания нестандартных ключей и хостов.

Пример записи в ~/.ssh/config:

Host myserver
  HostName remote-host
  User user
  IdentityFile ~/.ssh/id_rsa
  Port 22

Безопасность и лучшие практики

  • Всегда защищайте приватный ключ парольной фразой, если он не хранится в защищённом модуле.
  • Ограничивайте доступ в authorized_keys: используйте опции command=, from=”ip” и другие механизмы, если ключ используется для автоматизации.
  • Не удаляйте парольную аутентификацию на сервере, пока не проверили вход по ключу.
  • Храните резервную копию приватного ключа в надёжном месте (шлюз, ключница, аппаратный токен).

Пример ограничения в authorized_keys:

from="192.0.2.0/24",command="/usr/local/bin/sync-script" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...

Критерии приёмки

  • Вы можете подключиться по SSH без ввода пароля пользователя.
  • Файл ~/.ssh/authorized_keys на сервере содержит вашу публичную строку.
  • Права доступа: ~/.ssh — 700, ~/.ssh/authorized_keys — 600.
  • На сервере включена PubkeyAuthentication.

Чеклист по ролям

Администратор:

  • Проверил разрешения и конфигурацию SSH на сервере.
  • Убедился, что право на вход предоставлено только нужным пользователям.

Пользователь:

  • Сгенерировал ключи и загрузил публичный ключ на сервер.
  • Настроил ssh-agent при необходимости.

Мини‑методология для внедрения (быстрая схема)

  1. Сгенерировать ключи локально (ssh-keygen).
  2. Загрузить публичный ключ на сервер (ssh-copy-id).
  3. Проверить подключение (ssh user@host).
  4. Настроить ssh-agent или конфиг~(по желанию).
  5. Ограничить использование ключа и сделать резервную копию.

Ключевые числа и пути

  • Файлы по умолчанию: ~/.ssh/id_rsa (приватный), ~/.ssh/id_rsa.pub (публичный).
  • Файл на сервере: ~/.ssh/authorized_keys.
  • Рекомендуемая длина ключа RSA — 3072 или 4096 бит; можно использовать ED25519 для компактных и современных ключей.
  • Порт по умолчанию: 22.

Глоссарий (1‑строчно)

  • Публичный ключ: часть пары ключей, копируется на сервер для проверки.
  • Приватный ключ: хранится локально, никогда не передаётся.
  • ssh-agent: агент, который хранит приватные ключи в памяти для повторного использования.

Когда не стоит включать безпарольную аутентификацию

  • На публичных или редко используемых серверах, где ключи трудно контролировать.
  • По умолчанию не включайте отключение паролей, пока не проверите доступ и не обеспечите резервный вход.

Краткое резюме

Настройка SSH без пароля с помощью ssh-copy-id экономит время и повышает удобство. Правильная конфигурация и соблюдение практик безопасности — защита приватного ключа, настройка прав и, при необходимости, ограничения в authorized_keys — делают способ безопасным для регулярной работы.

Важно: перед отключением парольной аутентификации убедитесь в надёжности ключей и наличии админского доступа к серверу.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как распознать фейковые аккаунты в Instagram
Социальные сети

Как распознать фейковые аккаунты в Instagram

Ветвление в Google Формы: как настроить
Руководство

Ветвление в Google Формы: как настроить

Как остановить импорт данных Chrome в Edge
Инструкции

Как остановить импорт данных Chrome в Edge

Как отложить апрельское обновление Windows 10
Windows

Как отложить апрельское обновление Windows 10

Где я сейчас в Google Maps — быстрое руководство
Навигация

Где я сейчас в Google Maps — быстрое руководство

Отключение проверки подписи драйверов в Windows 10
Windows

Отключение проверки подписи драйверов в Windows 10