Использование 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-ключа

Для работы без пароля нам понадобится пара ключей:

  1. Откройте PuTTYgen (идет в комплекте с PuTTY)
  2. Выберите тип ключа:
    • ED25519 — рекомендуется для современных систем
    • RSA — для совместимости со старыми серверами (выберите 4096 бит)
  3. Нажмите «Generate» и перемещайте курсор для генерации случайных данных
  4. Сохраните ключи:
    • Приватный ключ (*.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

Для использования созданного ключа:

  1. Откройте PuTTY
  2. Введите хост и порт (обычно 22)
  3. Перейдите в раздел: Connection → SSH → Auth
  4. Укажите путь к .ppk файлу (кнопка Browse)
  5. Вернитесь в Session → сохраните настройки

4. Автоматизация с Pageant

Чтобы не указывать ключ при каждом подключении:

  1. Запустите Pageant (идет в комплекте с PuTTY)
  2. Добавьте ваш .ppk файл через иконку в трее
  3. Теперь 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 формат

Заходите на форум, регистируйтесь, задавайте вопросы.


Оцените статью или поделитесь ей в соцсетях:

+ 0 | - 0

Рекомендуемые статьи: