Это, конечно, не создает сцену, в которой вы можете установить 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 подключаться к другим компьютерам?