Eu tenho um Odroid XU4 com o servidor Ubuntu 14.04 nele.
Eu instalei o servidor ssh com apt-get install openssh-server
. Eu tenho o IP local com hostname -I
, o que é 192.168.0.186
, eu gerado um número de porta aleatório: 61354
. Eu criei um arquivo /etc/ssh/authorized_keys
e anexa a chave pública de máquina cliente: cat /media/stick/id_rsa.pub >> /etc/ssh/authorized_keys
. Depois disso, substituí o arquivo de configuração por nano /etc/ssh/sshd_config
. Eu defini-lo para PasswordAuthentication no
, ListenAddress 192.168.0.186
, Port 61354
, AuthorizedKeysFile /etc/ssh/authorized_keys
. Depois disso, reiniciei a máquina.
Tentei acessá-lo com SSH usando ssh 192.168.0.186 -p 61354
o cliente sem êxito:, ssh: connect to host 192.168.0.186 port 61354: Bad file number
que está longe de ser uma mensagem de erro detalhada. Eu consegui ping 192.168.0.186
, então o IP está bom. Como consertar isto?
editar:
$ 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
No servidor que tentei ps aux | grep sshd
, de acordo com o servidor ssh está sendo executado. Portanto, provavelmente existe um firewall, que impede o cliente de se conectar ao servidor. Não sei exatamente o que há na imagem do sistema operacional que instalei a partir daqui: http://odroid.in/ubuntu_14.04lts/ . Eu tento descobrir se eu tenho um firewall ou não. (De acordo com um fórum, não há firewall instalado.)
Eu verifiquei com 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
e 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
Eu tentei um servidor de soquete simples usando este tutorial: 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
Portanto, isso está claramente relacionado à rede e, provavelmente, tenho que verificar as configurações do modem. Eu tentei isso em outra máquina com o Fedora com os mesmos resultados.
conclusão
Acabou que isso é algo relacionado à rede. Provavelmente, não há firewall instalado na máquina, portanto, esse não é um problema relacionado ao firewall. Eu tenho o mesmo em uma instalação do Fedora 23. Eu acho que isso é algo geral na rede e provavelmente causado pelo novo modem que recebi. Eu tento verificar as configurações do modem, talvez eu encontre a raiz do problema.
sudo iptables -S
listaráiptables
regras ativas .iptables
nemufw
instalado no servidor (eo cliente). De acordo com um post do fórum, a imagem do sistema operacional que instalei vem sem firewall por padrão.ncat 192.168.0.186 61354
? Você pode experimentá-lo com o serviço na porta padrão?Respostas:
Você precisa usar o
ssh
comando conforme descrito na página de manual:o número da porta DEVE estar antes do nome do host / IP, caso contrário não poderá ser respeitado.
Para o erro real, a
connect
função está bloqueada, conforme descrito na pergunta no SO . Você precisa abrir a porta no firewall no caminho (traceroute 192.168.0.186
) ou usar alguma porta aberta (se você não executar o servidor https na mesma máquina,443
deverá estar aberto).fonte
ssh -vvv -p 61354 192.168.0.186
Apesar da seção de conclusão da pergunta, consegui enviar dados entre máquinas com o servidor de soquete usando os mesmos comandos. O que eu fiz antes disso foi acessar a página de administração do modem. Passou por um primeiro processo de acesso, como alteração de senha, etc. Não alterei nada nas configurações, mas depois a comunicação funcionou corretamente. Não tenho certeza se digitei incorretamente os comandos ou se o primeiro procedimento de acesso o corrigiu, realmente não importa. A raiz do problema era outra coisa.
O servidor SSH ainda não funcionou após esta parte, então comecei a brincar com a configuração.
Eu removi o
ListenAddress
ePort
do arquivo de configuração. Depois disso, recebi apermission denied (public key)
mensagem usando ossh 192.168.0.186
comando, então a conexão foi estabelecida, mas a autenticação falhou. Então, ainda tenho trabalho a fazer, mas pelo menos está conectado.No final, removi o
AuthorizedKeysFile /etc/ssh/authorized_keys
arquivo também e movi o arquivo para o local padrão~/.ssh/authorized_keys
e me conecteissh [email protected]
. Agora funciona corretamente. :-)fonte