Обычно админы копируют содержимое
id_rsa.pub вручную из одного терминала в другой. Но есть способ проще и элегантнее — использовать утилиту ssh-copy-id.📌 Сценарий:
- У нас есть два сервера с Debian:
server1 и server2- Наша цель — настроить вход по SSH-ключу с
server1 на server2 под root🚀 Шаг 1: Генерация ключей на server1
ssh-keygen -t rsa
Нажимаем ENTER на всех этапах (или задаём пароль для приватного ключа, что рекомендуется для root-доступа).
Ключи будут сохранены в:
- 🔑
/root/.ssh/id_rsa — приватный- 🗝
/root/.ssh/id_rsa.pub — публичныйПроверить публичный ключ:
cat ~/.ssh/id_rsa.pub
🚀 Шаг 2: Копирование ключа на server2
На
server1 выполняем:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@server2
Вводим пароль root от
server2. Ключ будет добавлен в /root/.ssh/authorized_keys.⚠️ Важно
Для работы
ssh-copy-id нужно, чтобы на server2 был разрешён вход под root по SSH. Это настраивается в /etc/ssh/sshd_config:
PermitRootLogin yes # Разрешен вход под root
PermitRootLogin no # Запрещен
PermitRootLogin without-password # Только по SSH-ключам
PermitRootLogin forced-commands-only # Только по ключам и с конкретной командой
Пример строки для
forced-commands-only:
command="rsync" ssh-rsa AAAAB3... root@server1
После изменений — не забудьте перезапустить SSH:
service sshd restart
📎 Теперь вы можете заходить на
server2 по SSH с server1 без пароля, безопасно и удобно.👉 @sys_adminos