Я пытаюсь подключиться к удаленному серверу Ubuntu через SSH со своего компьютера с Windows, используя PuTTY. Однако я все время получаю ошибку истечения времени ожидания и не могу найти для нее причины.
Попытка установить соединение с консоли дает следующий подробный вывод:
$ ssh -vvv <user>@<ip-address>
OpenSSH_7.5p1, OpenSSL 1.0.2k 26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: resolving "<ip-address>" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to <ip-address> [<ip-address>] port 22.
debug1: connect to address <ip-address> port 22: Connection timed out
ssh: connect to host <ip-address> port 22: Connection timed out
где - мое имя пользователя, а - адрес сервера.
Я выполнил / sbin / ifconfig -a
и подтвердил, что IP-адрес правильный.
Я могу войти в систему, используя имя пользователя, с которым я пытаюсь использовать ssh, и это нормально.
/etc/init.d/ssh status
на сервере возвращает следующее:
* ssh.service - OpenBSD Secure Shell Server
Loaded: loaded (/lib/systemd/system/ssh.server; enabled; vendor preset: enabled)
Active: active (running) since Wed 2017-09-06 BST; 21min ago
...
21 минуту назад я перезапустил сервер, уже попытавшись перезапустить службу SSH. Время ожидания подключения еще не истекло.
Брандмауэр настроен на прием подключений через порт 22, поэтому я не вижу здесь никаких проблем.
Я очень ограничен в том, что я могу делать в консоли, к которой у меня есть доступ, но я не уверен, что еще я могу проверить или попробовать.
Редактировать:
Пинг ip дает мне следующее:
$ ping <ip-address>
Pinging <ip-address> with 32 bytes of data:
Reply from <ip-address>: bytes=32 time=14ms TTL=54
Reply from <ip-address>: bytes=32 time=14ms TTL=54
Reply from <ip-address>: bytes=32 time=14ms TTL=54
Telnet не дает мне вывода:
$ telnet <ip-address> 22
$
Кроме того, теперь он разрешает мне ssh (по крайней мере, до аутентификации, но это совсем другая проблема). Больше нет проблем, хотя я до сих пор не понимаю, что их в первую очередь вызвало
Если у вас есть доступ к хосту с вашего компьютера с Ubuntu, попробуйте следующее:
sudo netstat -tnlp | grep ssh
(список запущенных процессов, применяющих фильтр для демона SSH). cat /etc/ssh/sshd_config | grep Port
. Выход должен быть Порт 22 или любой другой номер. sudo iptables -nL
. Если количество правил велико, перенаправьте вывод в текстовый файл в вашем домашнем каталоге sudo iptables -nL > $HOME/iptables.txt
. sudo iptables-save > $HOME/iptables.up.rules
. Удалить ВРЕМЕННЫЕ все правила sudo iptables -F
. (Позже для восстановления правил iptables вы можете запустить sudo iptables-restore < $HOME/iptables.up.rules
.) Теперь ваша машина с Ubuntu может принимать любой трафик, поэтому вы должны иметь возможность подключаться к нему удаленно через ssh.