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

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

4 min read DevOps Обновлено 13 Apr 2026
SSH без пароля: ssh-copy-id — быстрая настройка
SSH без пароля: ssh-copy-id — быстрая настройка

Клавиатура и руки набирают текст на планшете Surface

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

Краткая дефиниция

SSH‑ключ — это пара: публичный и приватный ключи. Приватный хранится у вас, публичный помещается на сервер. Сервер сверяет их при подключении и допускает вас без пароля.

Что вам понадобится

  • Доступ к терминалу на локальной машине.
  • Учётная запись на удалённом сервере (имя пользователя и хост/IP).
  • Установленный OpenSSH (обычно есть в Linux/macOS; в Windows можно использовать WSL или клиент OpenSSH).

Важно: не включайте приватный ключ в общедоступные репозитории и не передавайте его по незашифрованным каналам.

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

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

ssh-keygen

Нажимайте Enter на каждом запросе, если хотите принять стандартные параметры. Рекомендуется использовать тип ключа ed25519 (новее и компактнее). Для этого выполните:

ssh-keygen -t ed25519

Оставьте парольную фразу пустой, если хотите полностью безпарольный вход. Совет: для большей безопасности лучше задать фразу и использовать ssh‑agent.

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

Копирование публичного ключа на сервер с помощью ssh-copy-id

После генерации ключей добавьте публичный ключ на сервер командой:

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

Замените user и remote-host на ваше имя пользователя и хост/IP. Если вы использовали другой файл ключа (например, id_ed25519.pub), укажите его путь.

Использование ssh-copy-id в терминале для установки SSH ключа на сервере

Команда подключится к серверу по паролю один раз, создаст (при необходимости) папку ~/.ssh и добавит ваш публичный ключ в файл ~/.ssh/authorized_keys с корректными правами.

Проверка входа без пароля

Теперь можно проверить подключение:

ssh user@remote-host

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

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

Когда это не работает — распространённые причины

  • Неправильные права на директорию ~/.ssh или файл authorized_keys. Разрешения должны быть 700 для ~/.ssh и 600 для ~/.ssh/authorized_keys.
  • Публичный ключ не был скопирован в тот же аккаунт, под которым вы пытаетесь входить.
  • SSH‑сервер конфигурирован запрещать аутентификацию по ключам (параметры PasswordAuthentication или PubkeyAuthentication в /etc/ssh/sshd_config).
  • Используется другой путь к файлу ключа; указанный ключ и ключи агента не совпадают.

Совет для отладки: запустите ssh с опцией -v, -vv или -vvv, чтобы увидеть подробный лог аутентификации.

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

  • Ручное добавление: скопируйте содержимое ~/.ssh/id_rsa.pub и вставьте в ~/.ssh/authorized_keys на сервере.
  • ssh-agent: храните приватный ключ в агенте, тогда нужно будет вводить пароль фразы только один раз за сессию.
  • Ansible/Chef/Puppet: автоматическое распространение ключей на большое количество хостов.
  • Использование централизованного решения (например, LDAP/SSSD или централизованная авторизация), если требуется корпоративное управление доступом.

Рекомендации по безопасности и харднинг

  • Используйте ed25519 или RSA с размером не меньше 4096 бит при необходимости совместимости.
  • Устанавливайте парольную фразу на приватный ключ и запускайте ssh-agent.
  • Ограничьте доступ по ключу в authorized_keys (опция from=”CIDR”, command=”…”) для критичных систем.
  • Отключите вход по паролю на сервере: в /etc/ssh/sshd_config установите PasswordAuthentication no и перезапустите sshd.
  • Регулярно проверяйте файл authorized_keys и удаляйте устаревшие ключи.

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

Мини‑методология: быстрый рабочий процесс

  1. Сгенерировать ключ: ssh-keygen -t ed25519.
  2. Скопировать ключ: ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host.
  3. Проверить доступ: ssh user@host.
  4. Настроить ssh‑agent и добавить приватный ключ: eval “$(ssh-agent -s)” && ssh-add ~/.ssh/id_ed25519.
  5. При уверенности — отключить PasswordAuthentication на сервере.

Ролезависимые чек‑листы

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

  • Проверить /etc/ssh/sshd_config.
  • Установить права 700 для ~/.ssh и 600 для authorized_keys.
  • Включить PubkeyAuthentication.

Разработчик / пользователь:

  • Сгенерировать ключ с безопасным типом.
  • Добавить ключ через ssh-copy-id.
  • Настроить ssh‑agent для удобства.

DevOps / автоматизация:

  • Автоматизировать распространение ключей через инфраструктурные инструменты.
  • Вести учёт выданных ключей и их владельцев.

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

  • Пользователь может подключиться по ssh user@host без запроса пароля.
  • На сервере в ~/.ssh/authorized_keys присутствует правильный публичный ключ.
  • Права доступа к ~/.ssh и authorized_keys настроены корректно.

1‑строчная глоссарий

  • authorized_keys — файл на сервере со списком публичных ключей, разрешённых для входа.
  • ssh-agent — фоновый процесс, который хранит приватные ключи в памяти и даёт доступ без постоянного ввода фразы.
  • ssh-copy-id — утилита, которая копирует публичный ключ в authorized_keys на удалённом хосте.

Короткая сводка

  • Генерируйте ключи локально.
  • Используйте ssh-copy-id для быстрой установки публичного ключа.
  • Тестируйте подключение и настраивайте права и конфигурацию сервера.
  • Применяйте рекомендации по безопасности и используйте ssh‑agent для удобства.

Примечание: используйте безпарольную аутентификацию для часто используемых и доверенных систем. Для критичных инфраструктур рассмотрите более строгие меры контроля доступа.

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

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

Как настроить адаптеры Powerline — Ethernet через розетку
Домашняя сеть

Как настроить адаптеры Powerline — Ethernet через розетку

Исправление ошибки Inaccessible Boot Device в Windows 10
Windows

Исправление ошибки Inaccessible Boot Device в Windows 10

Совместная работа в Pages, Numbers и Keynote на Mac
Инструменты

Совместная работа в Pages, Numbers и Keynote на Mac

Focus Mode в Word 2016 (Mac) — как включить
Продуктивность

Focus Mode в Word 2016 (Mac) — как включить

Как сменить фото профиля в Twitter
Социальные сети

Как сменить фото профиля в Twitter

Как припаять контакты к Raspberry Pi Pico
Электроника

Как припаять контакты к Raspberry Pi Pico