Это, конечно, не создает сцену, в которой вы можете установить SSH-соединение с вашего собственного компьютера, а не с другого компьютера в той же сети после установки openssh-сервера (при условии, что вы не изменили настройки по умолчанию и нет волшебства при остановке сети соединение от прохождения).
Первое, что я хотел бы сделать, это убедиться, что SSH прослушивает все адаптеры Ethernet (а не только локальный). Вы можете сделать это с помощью netstat
, перечисляя номера, а не имена служб (-n), используя TCP (-t), который прослушивает (-l), и передает результаты в поиск grep
:22
- это порт, который SSH прослушивает по умолчанию. :
netstat -ntl | grep :22
Вы должны получить следующий результат:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
Если вы не получите такой результат, возможно, это ваша первая проблема. Проверка того, что SSH-сервер действительно запущен (перезапустите с помощью sudo server ssh restart
), это первое, что я бы попробовал (но, вероятно, это не тот случай, когда вы можете подключиться с локального хоста). Второе, на что я хотел бы обратить внимание, - это конфигурация сервера SSH.
Если это результат, полученный от netstat
то я могу предположить, что SSH-сервер прослушивает все адаптеры Ethernet, что означает, что соединения с другим ПК в той же сети должны работать.
Следующая вещь, на которую я посмотрю, - это IP-адрес ПК, чтобы убедиться, что я указываю правильный IP-адрес с ПК, с которого пытаюсь подключиться. ifconfig
должен предоставить мне информацию, которая мне нужна.
На моем компьютере ifconfig
дает мне:
eth0 Link encap:Ethernet HWaddr 00:26:9e:e8:cf:31
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:42 Base address:0xc000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4239 errors:0 dropped:0 overruns:0 frame:0
TX packets:4239 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1341552 (1.3 MB) TX bytes:1341552 (1.3 MB)
wlan0 Link encap:Ethernet HWaddr c4:17:fe:3c:aa:d7
inet addr:192.168.1.66 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::c617:feff:fe3c:aad7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:54149 errors:0 dropped:0 overruns:0 frame:0
TX packets:24983 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:29122251 (29.1 MB) TX bytes:4707094 (4.7 MB)
Это показывает, что у моего eth0
нет IP-адреса (потому что он не подключен) и что у моего беспроводного адаптера wlan0
есть IP-адрес 192.168.1.66
. Это IP-адрес, который мне нужно использовать для подключения с другого компьютера в той же сети.
На другом ПК, если я вошел в систему с тем же именем пользователя, что и на "проблемном" ПК, я бы подключился с терминала с помощью:
ssh 192.168.1.66
Все еще не работает?
Следующее, что нужно попробовать, это проверить, существует ли какая-либо сетевая связь между ПК. Попытка пинговать "проблемный" ПК с другого. Если вы не можете получить ответ на эхо-запрос, возможно, это не проблема SSH, а проблема сети.
Еще одна вещь, которую вы могли бы попробовать ... Несколько месяцев назад у меня возникла проблема при попытке печати на моем беспроводном принтере с моего ноутбука. Оказалось, что это беспроводной маршрутизатор, вызывающий проблему. После перезагрузки маршрутизатора печать снова заработала. Вы пробовали перезагрузить свой роутер?
Все еще не повезло?
Хорошо, теперь мы попробуем sudo tcpdump
на машине A. Мы хотим сбросить все пакеты с IP-адресом источника 192.168.1.33 (машина B), которые поступают на порт 22 через eth0
(при условии, что ваш сетевой адаптер - eth0
):
sudo tcpdump -i eth0 src host 192.168.1.33 and dst port 22
Сейчас на машине Б попробую:
SSH 192.168.1.22
Производит ли tcpdump
какой-либо вывод?
Мы также можем попробовать telnet
с машины B, чтобы попытаться подключиться к порту 22 на машине A:
telnet 192.168.1.22 22
Это должно произвести что-то вроде:
user@machineb:~$ telnet 192.168.1.22 22
Trying 192.168.1.22...
Connected to 192.168.1.22.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.8p1 Debian-1ubuntu3
Могут ли другие компьютеры подключаться к машине A?
Может ли машина B подключаться к другим компьютерам?