Подключение к нескольким Linux-серверам по SSH без пароля (из Windows)

Pasha,linux

Подключение к нескольким Linux-серверам по SSH без пароля

Часто при работе с несколькими Linux-серверами хочется избежать постоянного ввода паролей при подключении. Это легко реализуется с помощью SSH-ключей.

Один SSH-ключ можно использовать для подключения ко всем серверам. Не нужно создавать отдельный ключ для каждого.

Шаги для подключения без пароля

Сгенерируйте ключ (один раз)

ssh-keygen -t ed25519 -C "your_email@example.com"

Это создаст пару файлов в директории C:\Users\<ваше_имя>\.ssh\:

  • id_ed25519 — приватный ключ

  • id_ed25519.pub — публичный ключ

Скопируйте публичный ключ на каждый сервер

ssh-copy-id -i "C:\Users\<имя>\.ssh\id_ed25519.pub" user@IP

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

(Опционально) Настройте ~/.ssh/config для удобства

Host server1
    HostName 192.168.98.213
    User administrator
    IdentityFile ~/.ssh/id_ed25519

Host server2
    HostName 192.168.98.214
    User administrator
    IdentityFile ~/.ssh/id_ed25519

Теперь подключайтесь так:

ssh server1

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

  • При генерации ключа создаются две части: приватная и публичная.

  • Приватный ключ никогда не покидает вашу машину.

  • Публичный ключ можно копировать на любые серверы — он не является секретом.

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

⚠️

Если кто-то получит доступ к вашему приватному ключу — он получит полный доступ ко всем серверам, где установлен соответствующий публичный ключ. Защищайте его!