Использование SSH без пароля
Использование SSH без пароля возможно с помощью безопасной аутентификации по открытому ключу. Вот пошаговая инструкция как настроить безопасное подключение к серверу без ввода пароля.
1. Генерация SSH-ключа в среде Unix/Linux (если ключа изначально нет)
На локальной машине выполните:
ssh-keygen -t ed25519 -C "your_email@example.com"
(или ssh-keygen -t rsa -b 4096, если нужна RSA)
Нажмите Enter, чтобы оставить пустым парольную фразу (или задайте её для большей безопасности).
2. Копирование открытого ключа на сервер
Способ 1: ssh-copy-id (проще)
ssh-copy-id user@server_ip
Вам потребуется ввести пароль в последний раз.
Способ 2: Вручную
Скопируйте содержимое ~/.ssh/id_ed25519.pub (или id_rsa.pub) и добавьте его в ~/.ssh/authorized_keys на сервере:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "ваш_публичный_ключ" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
3. Проверка подключения
Теперь подключитесь без пароля:
ssh user@server_ip
4. Дополнительная безопасность (опционально)
На сервере в /etc/ssh/sshd_config можно отключить парольную аутентификацию:
PasswordAuthentication no
ChallengeResponseAuthentication no
После изменения перезапустите SSH:
sudo systemctl restart sshd
В случае, если есть еще один, например другой ключ и он ещё используется, создайте новый с другим именем:
ssh-keygen -t ed25519 -C "new_key@example.com" -f ~/.ssh/new_key_name
Будет создана пара:
~/.ssh/new_key_name (приватный ключ)
~/.ssh/new_key_name.pub (публичный ключ)
Как использовать новый ключ?
Добавьте публичный ключ на сервер:
ssh-copy-id -i ~/.ssh/new_key_name user@server_ip
Подключайтесь, указывая ключ:
ssh -i ~/.ssh/new_key_name user@server_ip
Или добавьте ключ в SSH-агент:
ssh-add ~/.ssh/new_key_name
SSH-агент — это фоновая программа, которая хранит приватные ключи в памяти и управляет ими.
Когда вы добавляете ключ через ssh-add, SSH-агент «запоминает» этот ключ и, если он защищён паролем (passphrase), вам не нужно вводить пароль каждый раз при подключении по SSH.
Это удобно, если вы используете ключ с passphrase, чтобы не вводить его постоянно.
Если ключ не защищён паролем (passphrase пустой), добавлять в агент не обязательно — SSH будет использовать ключ напрямую.
Примечания:
Права файлов должны быть корректными (например, ~/.ssh — 700, authorized_keys — 600).
Если ключ не подходит, проверьте логи сервера: tail -f /var/log/auth.log.
Для Windows используйте PuTTY + Pageant или WSL, об этом ниже.
Настройка SSH-доступа без пароля через PuTTY
PuTTY — популярный SSH-клиент для Windows, который поддерживает аутентификацию по ключам. В этой инструкции я подробно расскажу, как настроить безопасное подключение к серверу без ввода пароля.
1. Генерация SSH-ключа
Для работы без пароля нам понадобится пара ключей:
- Откройте PuTTYgen (идет в комплекте с PuTTY)
- Выберите тип ключа:
- ED25519 — рекомендуется для современных систем
- RSA — для совместимости со старыми серверами (выберите 4096 бит)
- Нажмите «Generate» и перемещайте курсор для генерации случайных данных
- Сохраните ключи:
- Приватный ключ (*.ppk) — нажмите «Save private key»
- Публичный ключ — скопируйте текст из поля «Public key»
Важно: Сохраните .ppk файл в надежном месте – без него доступ к серверу будет невозможен!
2. Добавление ключа на сервер
Скопируйте публичный ключ на целевой сервер:
mkdir -p ~/.ssh
echo "ваш_публичный_ключ" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
По сути нам необходимо просто добавить в файл ~/.ssh/authorized_keys наш ключ новой строкой.
3. Настройка PuTTY
Для использования созданного ключа:
- Откройте PuTTY
- Введите хост и порт (обычно 22)
- Перейдите в раздел: Connection → SSH → Auth
- Укажите путь к .ppk файлу (кнопка Browse)
- Вернитесь в Session → сохраните настройки
4. Автоматизация с Pageant
Чтобы не указывать ключ при каждом подключении:
- Запустите Pageant (идет в комплекте с PuTTY)
- Добавьте ваш .ppk файл через иконку в трее
- Теперь PuTTY будет автоматически использовать этот ключ
Возможные проблемы и решения
Если подключение не работает:
- Проверьте права на сервере:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
- Убедитесь, что в /etc/ssh/sshd_config разрешена аутентификация по ключу:
PubkeyAuthentication yes
Хотя, как показывает практика, досточно выключить:
PasswordAuthentication no
ChallengeResponseAuthentication no
Но я рекомендую сделать так:
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
Это значит:
— вход по паролю запрещён,
— вход по ключам разрешён,
— challenge-response отключён (вызов-ответ).
- Для ключей OpenSSH используйте PuTTYgen для конвертации в .ppk формат
Заходите на форум, регистируйтесь, задавайте вопросы.
Оцените статью или поделитесь ей в соцсетях:
Рекомендуемые статьи: