Não é possível conectar-se ao servidor SSH local - número de arquivo inválido

1

Eu tenho um servidor Odroid XU4 com Ubuntu 14.04.

Eu instalei o servidor ssh com apt-get install openssh-server . Eu obtive o IP local com hostname -I , que é 192.168.0.186 , gerando um número de porta aleatório: 61354 . Eu criei um arquivo /etc/ssh/authorized_keys e anexei a chave pública da máquina cliente: cat /media/stick/id_rsa.pub >> /etc/ssh/authorized_keys . Depois disso, anulei o arquivo de configuração com nano /etc/ssh/sshd_config . Eu defino como PasswordAuthentication no , ListenAddress 192.168.0.186 , Port 61354 , AuthorizedKeysFile /etc/ssh/authorized_keys . Depois disso, reiniciei a máquina.

Eu tentei acessá-lo com SSH usando ssh 192.168.0.186 -p 61354 no cliente sem sucesso: ssh: connect to host 192.168.0.186 port 61354: Bad file number , que está longe de ser uma mensagem de erro detalhada. Eu com sucesso ping 192.168.0.186 , então o IP está bem. Como consertar isso?

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 eu tentei ps aux | grep sshd , de acordo com o servidor ssh está rodando. Então, provavelmente há um firewall, que impede que o cliente se conecte ao servidor. Eu não sei exatamente o que está na imagem do sistema operacional que eu instalei aqui: link . Eu tento descobrir se 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: link

$ 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 é claramente relacionado à rede e, provavelmente, eu preciso verificar as configurações do modem. Eu tentei isso em outra máquina com o Fedora com os mesmos resultados.

conclusão

Descobriu-se que isso é algo relacionado à rede. Muito provavelmente não há firewall instalado na máquina, portanto, isso 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 eu tenho. Eu tento verificar as configurações do modem, talvez eu encontre a raiz do problema.

    
por inf3rno 07.02.2016 / 14:14

2 respostas

0

Você precisa usar o comando ssh , conforme descrito na página de manual:

ssh -p 61354 192.168.0.186

o número da porta DEVE ser antes do nome do host / IP, caso contrário, ele pode não ser honrado.

Para o erro real, a função connect está bloqueada, conforme descrito na pergunta em 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 deve estar aberto).

    
por 07.02.2016 / 14:23
0

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. Ele passou por um primeiro processo de acesso, como alteração de senha, etc. Eu não mudei nada nas configurações, mas depois disso a comunicação funcionou corretamente. Eu não tenho certeza se eu digitei incorretamente os comandos ou este primeiro procedimento de acesso corrigiu isso, realmente não importa. A raiz do problema era outra coisa.

O servidor SSH ainda não funcionava depois dessa parte, então comecei a brincar com a configuração.

After that I overrode the config file with nano /etc/ssh/sshd_config. I set it to PasswordAuthentication no, ListenAddress 192.168.0.186, Port 61354, AuthorizedKeysFile /etc/ssh/authorized_keys.

Eu removi o ListenAddress e Port do arquivo de configuração. Depois disso, recebi a mensagem permission denied (public key) usando o comando ssh 192.168.0.186 , então a conexão foi estabelecida, mas a autenticação falhou. Então eu ainda tenho trabalho a fazer, mas pelo menos está conectado.

No final, também removi o AuthorizedKeysFile /etc/ssh/authorized_keys e movi o arquivo para o local padrão ~/.ssh/authorized_keys e conectei com ssh [email protected] . Agora funciona corretamente. : -)

    
por 07.02.2016 / 18:01