SSH. Что делать, если SSH-подключение выдает ошибку

Последние изменения: 26.01.2023

Некорректные настройки файрвола. Ошибки вида Connection timed out

Чаще всего ошибки возникают при некорректно настроенных правилах файрвола.
 
Для подключения надо разрешить все входящие соединения по протоколу ICMP в правилах входящего соединения — если соединение не разрешено, то при попытке сделать ping до машины, пакеты не дойдут.
 
Для SSH-подключения нужно также создать правило, которое разрешает входящие SSH-подключения по протоколу TCP по заданному порту.
 
В группе default, настроенной по умолчанию для всех пользователей, изначально выставлены вышеперечисленные настройки. При создании виртуальной машины можно выбирать именно эту группу в настройках файрвола, если возникают сложности с кастомной конфигурацией.
 

Неверно добавленный SSH-ключ. Ошибки Connection refused

При генерации ключа утилитой PuttyGen нужно иметь ввиду, что PuTTY и OpenSSH используют разные форматы открытых SSH-ключей. 
Если публичный ключ имеет вид BEGIN SSH2 PUBLIC KEY, то он не подойдет. Ключ должен начинаться с «ssh-rsa AAAA ….».
 
При создании ключа из утилиты PuttyGen достаточно использовать появившийся в интерфейсе после генерации ключ формата OpenSSH. Нужно скопировать его из поля «Public key for pasting into OpenSSH authorized_keys file».
8f2b96f3008bfdb15fe3482cb5044116.png

Отсутствие плавающего (публичного) IP адреса. Ошибка Connection refused

Если при создании машины вы использовали ранее созданную подсеть, система дает возможность создать сервер без плавающего IP.

Подключение по SSH в таком случае невозможно, поскольку внутренний IP-адрес не анонсирован в интернете.
К созданной машине нужно добавить плавающий IP для подключения из внешних сетей. Как добавить плавающий IP читайте в статье «Плавающий IP: что это, как получить и привязать к машине».

Помогла ли вам статья?