Обзор
ssh-copy-id автоматизирует процесс настройки аутентификации по открытому SSH-ключу, помогая пользователям безопасно подключаться к удаленным серверам без пароля. Команда по умолчанию использует стандартные файлы открытых ключей, такие как ~/.ssh/id_rsa.pub или ~/.ssh/id_dsa.pub, но также позволяет указать конкретный файл ключа.
Основные функции
- Копирование открытого SSH-ключа на удаленный сервер
- Автоматическая настройка прав доступа для файла authorized_keys
- Поддержка настройки SSH-соединений без пароля
- Предотвращение дублирования ключей при многократном выполнении (идемпотентность)
Основные опции
Команда ssh-copy-id предоставляет несколько полезных опций для детального управления процессом копирования ключа.
Настройка ключа и соединения
Режимы выполнения
Сгенерированная команда:
Комбинируйте команды.
Описание:
`ssh-copy-id` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
Различные сценарии копирования открытого SSH-ключа на удаленный сервер с помощью ssh-copy-id.
Базовое использование
ssh-copy-id user@remote_host
Копирует стандартный открытый ключ (например, ~/.ssh/id_rsa.pub) для пользователя 'user' на 'remote_host'. Появится запрос на ввод пароля.
Указание конкретного файла ключа
ssh-copy-id -i ~/.ssh/my_custom_key.pub user@remote_host
Копирует ключ, используя указанный файл открытого ключа (например, ~/.ssh/my_custom_key.pub).
Использование нестандартного порта SSH
ssh-copy-id -p 2222 user@remote_host
Используется, если удаленный сервер запускает службу SSH на порту, отличном от стандартного (22), например, на порту 2222.
Комбинация нескольких опций
ssh-copy-id -i ~/.ssh/another_key.pub -p 2222 user@remote_host
Пример копирования ключа на нестандартный порт с использованием конкретного файла ключа.
Советы и рекомендации
Полезные советы и моменты, на которые стоит обратить внимание при использовании ssh-copy-id.
Предварительная подготовка
Перед использованием ssh-copy-id убедитесь в следующем:
- Генерация открытого ключа: Если у вас еще нет пары SSH-ключей, сначала создайте их с помощью команды `ssh-keygen`.
- Доступ к удаленному серверу: У вас должен быть доступ к удаленному серверу по SSH с использованием пароля или другого метода аутентификации. ssh-copy-id запрашивает пароль для первоначальной аутентификации.
Проблемы с правами доступа
ssh-copy-id автоматически устанавливает правильные права доступа для директории `~/.ssh` и файла `~/.ssh/authorized_keys` на удаленном сервере. Если вы копировали ключ вручную, убедитесь, что права установлены корректно с помощью команд `chmod 700 ~/.ssh` и `chmod 600 ~/.ssh/authorized_keys`.
Идемпотентность
ssh-copy-id не добавляет уже скопированный ключ повторно. Поэтому при многократном выполнении команды в файле authorized_keys не будет дубликатов ключей. Это очень удобная особенность для использования в скриптах.