Як автоматизувати вхід через SSH із паролем?
Автентифікація за SSH-ключем дозволяє підключатися до Linux-сервера без необхідності щоразу вводити пароль користувача. Це також безпечніша альтернатива зберіганню пароля сервера у скриптах, ярликах або аргументах командного рядка.
Для SSH-автентифікації використовується пара криптографічних ключів: закритий ключ зберігається на вашому комп’ютері, а відкритий ключ додається на сервер.
Увага:
Нікому не передавайте свій закритий SSH-ключ і не зберігайте пароль сервера в ярликах, скриптах або аргументах командного рядка.
Створення SSH-ключа
У Windows, macOS або Linux зі встановленим OpenSSH відкрийте Термінал, Windows Terminal або PowerShell і виконайте:
ssh-keygen -t ed25519
Дотримуйтесь інструкцій, щоб вибрати місце для зберігання ключа. Закритий ключ також можна захистити за допомогою парольної фрази.
За замовчуванням команда створює закритий ключ і відповідний відкритий ключ у вашій SSH-директорії.
Додавання відкритого ключа на сервер
Підключіться до Linux-сервера, використовуючи наявні дані для SSH-доступу.
Додайте вміст відкритого ключа до наступного файлу для користувача, від імені якого ви хочете проходити автентифікацію:
~/.ssh/authorized_keys
Переконайтеся, що для SSH-директорії та файлу authorized_keys встановлено відповідні права доступу:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Підключення за допомогою SSH-ключа
Після додавання відкритого ключа на сервер підключіться за допомогою такої команди:
ssh username@server_ip -p ssh_port
Замініть username, server_ip і ssh_port на дані для підключення до вашого сервера. SSH-порт, наданий для вашого сервера, вказано у вітальному листі.
Якщо закритий ключ зберігається не в стандартному розташуванні, вкажіть його за допомогою параметра -i:
ssh -i /path/to/private_key username@server_ip -p ssh_port