Почему все мои попытки SSH терпят неудачу из-за тайм-аута?


22

Я новичок в использовании SSH и связанных с ним технологий, поэтому вполне возможно, что я не понимаю что-то базовое. (Это также может быть вопросом для сбоя сервера вместо .... не уверен.)

Я пытаюсь подключиться через ssh к веб-серверу (который у меня есть), и соединение никогда не устанавливается из-за тайм-аута.

~ $ ssh -vvv DOMAIN.com
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/USER/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 102: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to DOMAIN.com [123.45.67.89] port 22.
debug1: connect to address IPADD port 22: Operation timed out
ssh: connect to host DOMAIN.com port 22: Operation timed out

Первой моей мыслью было, что я как-то неправильно указал домен или что-то не так с моим сайтом. Поэтому я попытался подключиться к тому же домену через FTP, и это работало нормально (запрашивалось имя пользователя):

~ $ ftp
ftp> open
(to) DOMAIN.com
Connected to DOMAIN.com.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 2 of 50 allowed.
220-Local time is now 12:47. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (DOMAIN.com:USER):

Тогда я подумал, может быть, я просто неправильно использовал SSH. Я начал смотреть это видео урок . Примерно через 1 минуту он делает ssh will@supercars.comи получает приглашение имени пользователя, но оно дает мне то же время ожидания, что и выше. Я тогда попробовал, ssh google.comкоторый делает то же самое. ssh localhostС другой стороны, отлично работает. Таким образом, проблема, похоже, связана с запросами SSH по сети.

Моей следующей мыслью было, что это может быть проблема с брандмауэром. У меня на этом компьютере установлен Sophos, но, по словам моего администратора, он "не должен" блокировать исходящие SSH-запросы.

Может кто-нибудь помочь выяснить, почему это происходит?


8
Это живой IP-адрес, который вы нам даете. На нем запущено незащищенное FTP-соединение. Это не может быть хорошей идеей. Он также не работает на порту 22, который, я подозреваю, является источником ваших проблем. Вы не можете просто ssh во что-то, на сервере должен быть запущен sshd, а этого нет. Если это ваш сервер, включите ssh и выключите ftp. Вы можете сделать ftp поверх ssh, как только он запустится.
Маринус

3
Нет необходимости удалять. Я отредактировал IP и попросил SE очистить историю редактирования. Таким образом, человек, который ответил вам, не теряет репутацию.
Тердон

Ответы:


24

Это сообщение об ошибке означает, что сервер, к которому вы подключаетесь, не отвечает на попытки подключения SSH через порт 22. Для этого есть три возможные причины:

  1. Вы не используете SSH сервер на машине. Вам нужно будет установить его, чтобы иметь возможность подключиться к нему по ssh.
  2. Вы используете SSH-сервер на этом компьютере, но на нестандартном порту. Вы должны выяснить, на каком порту он работает; скажем, это на порт 2222, вы тогда бежите ssh -p 2222 hostname.
  3. Вы используете SSH-сервер на этом компьютере, и он использует порт, к которому вы пытаетесь подключиться, но на компьютере есть брандмауэр, который не позволяет вам подключиться к нему. Вам нужно будет выяснить, как изменить брандмауэр, или, возможно, вам нужен ssh с другого хоста, чтобы войти в него.

РЕДАКТИРОВАТЬ : как (правильно) указано в комментариях, третий, безусловно, имеет место; два других приведут к тому, что сервер отправит пакет TCP «reset» обратно при попытке подключения клиента, что приведет к сообщению об ошибке «отказано в соединении», а не к истечению времени ожидания. Два других также могут иметь место, но вам нужно сначала исправить третий, прежде чем вы сможете двигаться дальше.


6
Если бы он не был установлен или работал на другом порту, он получал бы сообщения об отказе в соединении.
Hut8

2
@ Hut8: верно. Из ваших трех возможностей только третий (брандмауэр) может привести к тайм-ауту.
R ..

В Ubuntu: sudo ufw allow 22; тогда делай свою работу; Судо Уфу отрицает 22. digitalocean.com/community/tutorials/…
Даниил

Я думаю, что существует четвертая возможность, которая заключается в том, что сервер каким-то образом недоступен (проблемы с интернет-маршрутизацией, что-то между ними ...) Даже если вы можете получить доступ к другим службам, поскольку выбранный маршрут может отличаться для sshдругих служб.
Алексис Вилке

3

Проверьте с помощью команды telnet, можете ли вы подключиться к SSH-порту 22. Если вы не можете подключиться, проверьте это. Сначала вы должны иметь возможность подключиться к порту нет. 22 на сервер.

По умолчанию SSH-порт равен 22. Но если вы настроили какой-либо другой порт, используйте этот порт вместо 22.

telnet <ip / url сервера> <порт>

например, telnet domain.com 22


2
Это время истечет точно так же (в противном случае ssh -vжурнал показал бы, что соединение установлено успешно, вместо того, чтобы сказать, что оно истекло)
Wouter Verhelst

@Wouter Verhelst, да, спасибо за разъяснения
AVJ

Как вы можете проверить, какой порт настроен? Настроить новый порт?
Йонатан Симсон

@YonatanSimson, предполагая, что у вас есть доступ, вы можете использовать sudo netstat -a64np( netstat) и искать sshdсервер (последний столбец). Если у вас нет доступа, вы можете попробовать nmap.
Алексис Вилке
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.