1

У меня есть Odroid XU4 с сервером Ubuntu 14.04.

Я установил ssh-сервер с помощью apt-get install openssh-server . Я получил локальный IP с hostname -I , то есть 192.168.0.186 , я сгенерировал случайный номер порта: 61354 . Я создал файл /etc/ssh/authorized_keys и добавил открытый ключ клиентского компьютера: cat /media/stick/id_rsa.pub >> /etc/ssh/authorized_keys . После этого я переопределил файл конфигурации с помощью nano /etc/ssh/sshd_config . Я установил его на PasswordAuthentication no , ListenAddress 192.168.0.186 , Port 61354 , файл AuthorizedKeysFile /etc/ssh/authorized_keys . После этого я перезагрузил машину.

Я попытался получить к нему доступ по SSH, используя ssh 192.168.0.186 -p 61354 на клиенте, но безуспешно: ssh: connect to host 192.168.0.186 port 61354: Bad file number , который далек от подробного сообщения об ошибке. Я успешно ping 192.168.0.186 , так что IP в порядке. Как это исправить?

редактировать:

$ ssh -vvv -p 61354 192.168.0.186
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Reading configuration data /c/Users/inf3rno/.ssh/config
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.0.186 [192.168.0.186] port 61354.
debug1: connect to address 192.168.0.186 port 61354: Connection refused
ssh: connect to host 192.168.0.186 port 61354: Bad file number

На сервере я попробовал ps aux | grep sshd , согласно которому работает ssh сервер. Поэтому, вероятно, существует межсетевой экран, который не позволяет клиенту подключиться к серверу. Я не знаю, что именно находится в образе операционной системы, который я установил отсюда: http://odroid.in/ubuntu_14.04lts/ . Я пытаюсь выяснить, есть ли у меня брандмауэр или нет. (По данным форума, брандмауэр не установлен.)

Я проверил с nmap

[inf3rno@inf3rno ~]$ sudo nmap -sS 192.168.0.186 -p 61354
[sudo] password for inf3rno: 
Starting Nmap 7.00 ( https://nmap.org ) at 2016-02-07 15:22 CET
Nmap scan report for 192.168.0.186
Host is up (0.0041s latency).
PORT      STATE  SERVICE
61354/tcp closed unknown
MAC Address: 00:1E:06:30:1E:CE (Wibrain)

Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

и traceroute

traceroute to 192.168.0.186 (192.168.0.186), 30 hops max, 60 byte packets 1 192.168.0.186 (192.168.0.186) 5.833 ms 5.773 ms 8.347 ms

Я попробовал простой сервер сокетов, используя этот учебник: http://www.binarytides.com/netcat-tutorial-for-beginners/

$ nc -l -v 1234 # starting the socket server
$ telnet localhost 1234 # client connection: ok
$ telnet 192.168.0.186 1234 # client connection: refused

Так что это явно связано с сетью, и, вероятно, я должен проверить настройки модема. Я попробовал это на другой машине с Fedora с теми же результатами.

заключение

Оказалось, это связано с сетью. Скорее всего, на компьютере не установлен брандмауэр, так что это не проблема, связанная с брандмауэром. У меня то же самое на Fedora 23 установить. Я думаю, что это что-то общее в сети, и, вероятно, вызвано новым модемом, который я получил. Я пытаюсь проверить настройки модема, возможно, я нахожу корень проблемы.

2 ответа2

0

Несмотря на заключительный раздел вопроса, мне удалось передать данные между компьютерами с сокет-сервером, используя те же команды. То, что я сделал до этого, получило доступ к странице администратора модема. Он прошел первый процесс доступа, например, смена пароля и т.д. Я ничего не изменил в настройках, но после этого связь работала нормально. Я не уверен, неправильно ли я набрал команды или эта первая процедура доступа исправила это, на самом деле не имеет значения. Корень проблемы был в другом.

Сервер SSH все еще не работал после этой части, поэтому я начал играть с конфигурацией.

После этого я переопределил файл конфигурации с помощью nano /etc /ssh /sshd_config. Я установил его на PasswordAuthentication no, ListenAddress 192.168.0.186, порт 61354, файл AuthorizedKeysFile /etc /ssh / авторизованный_ключ.

Я удалил ListenAddress и Port из файла конфигурации. После этого я получил сообщение об permission denied (public key) с помощью команды ssh 192.168.0.186 , поэтому соединение было установлено, но аутентификация не удалась. Так что у меня еще есть над чем поработать, но, по крайней мере, это связано.

В конце я тоже удалил AuthorizedKeysFile /etc/ssh/authorized_keys и переместил файл в папку по умолчанию ~/.ssh/authorized_keys и соединился с ssh root@192.168.0.186 . Теперь это работает правильно. :-)

0

Вам необходимо использовать команду ssh как описано на странице руководства:

ssh -p 61354 192.168.0.186

номер порта ДОЛЖЕН быть до имени хоста /IP, иначе он может не соблюдаться.

По фактической ошибке, функция connect заблокирована, как описано в вопросе о SO. Вам нужно открыть порт на брандмауэре в пути (traceroute 192.168.0.186) или использовать какой-то открытый порт (если вы не запускаете сервер https на той же машине, должен быть открыт 443).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .