Desktop Ubuntu 11.04: não é possível conectar ao servidor openssh do lado de fora

0

Eu uso o Ubuntu 11.04 como sistema operacional de desktop. Eu tenho openssh-server instalado e pode se conectar a ele do mesmo computador. Eu quero usá-lo para criar uma conexão de outro computador (na mesma rede local) para este. Por alguma razão, não há resposta. Ufw está inativo. Outro computador aqui com a mesma configuração funciona. O computador possui apenas uma NIC.

Máquina A (Ubuntu 11.04)

  • ip: 192.168.1.22
  • Servidor SSH instalado
  • estado do ufw: inativo
  • sshd parece ligar-se a todas as interfaces
  • ping da máquina B para esta máquina funciona
  • Tentei o ssh root @ localhost, só para ver se isso funciona, o que é o caso

Netstat resulta na Máquina A

unix 2 [ ACC ] STREAM LISTENING 13480 2275/ssh-agent /tmp/ssh-BKiZJjfU2214/agent.2214
unix 2 [ ACC ] STREAM LISTENING 13651 2195/gnome-keyring- /tmp/keyring-VvDtwo/ssh

Resultados do registro

09/02/11 10:25:26 AM    ubuntu-a    kernel  [ 5564.741977] Inbound IN=eth0 OUT= MAC=xxxx SRC=192.168.1.44 DST=192.168.1.22 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=45506 DF PROTO=TCP SPT=49089 DPT=22 WINDOW=14600 RES=0x00 SYN URGP=0

Máquina B (Ubuntu 11.04)

  • ip: 192.168.1.33
  • instalado ssh-server
  • tentou fazer login a partir da máquina A, que funciona
  • tentou fazer login na máquina A, o que resulta em um tempo limite de conexão

O que estou perdendo aqui?

    
por SPRBRN 01.09.2011 / 12:55

3 respostas

0

Execute isto:

netstat -lepn | grep ssh

Nos resultados, você vê se o sshd se liga a todas as interfaces ou todas (0.0.0.0). Se ele se liga apenas à interface local, altere estas configurações em / etc / sshd_config:

ListenAddress ::
ListenAddress 0.0.0.0

Se você não vê linhas como esta, então seu sshd não está em execução:

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          8627        674/sshd        
tcp6       0      0 :::22                   :::*                    LISTEN      0          8629        674/sshd        

Se este for o caso, você pode tentar iniciá-lo com:

start ssh
    
por 01.09.2011 / 13:49
1

Certamente não faz cena que você possa fazer uma conexão SSH a partir de seu próprio PC e não de um PC diferente na mesma rede depois de instalar o openssh-server (assumindo que você não alterou as configurações padrão e não há mágica a rede impedindo a conexão de passar).

A primeira coisa que eu faria é verificar se o SSH está escutando em todos os adaptadores Ethernet (e não apenas no localhost). Você pode fazer isso com netstat , listando números em vez de nomes de serviço (-n) usando TCP (-t) que estão atendendo (-l) e passando os resultados para grep pesquisando :22 , que é a porta que O SSH escuta por padrão:

netstat -ntl | grep :22

Você deve obter o seguinte resultado:

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN 

Se você não obtiver esse resultado, esse talvez seja seu primeiro problema. Verificar se o servidor SSH foi realmente iniciado (reiniciar com sudo server ssh restart ) é a primeira coisa que eu tentaria (mas provavelmente não é o caso para você, pois você pode se conectar a partir do host local). A segunda coisa que eu observaria seria a configuração do servidor SSH em ordem.

Se esse é o resultado que recebi de netstat , posso supor que o servidor SSH está escutando em todos os adaptadores Ethernet, o que significa que as conexões de outro PC na mesma rede devem funcionar.

A próxima coisa que eu verifico é o endereço IP do PC para garantir que estou especificando o endereço IP correto do PC do qual estou tentando me conectar. ifconfig deve me fornecer as informações de que preciso.

No meu PC, ifconfig me dá:

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)

Isso mostra que meu eth0 não tem um endereço IP (porque não está conectado) e que meu adaptador sem fio, wlan0 tem o endereço IP 192.168.1.66 . Este é o endereço IP que eu preciso usar para conectar outro PC na mesma rede.

Em outro PC, supondo que eu tenha feito login com o mesmo nome de usuário que eu tenho no PC "problemático", eu conectaria de um terminal com:

ssh 192.168.1.66

Ainda não funciona?

A próxima coisa a tentar é verificar se existe algum tipo de comunicação de rede entre os PCs. Tentando pingar o PC "problema" do outro. Se você não conseguir uma resposta de ping, provavelmente não é um problema de SSH, mas sim um problema de rede.

Outra coisa que você poderia tentar ... Alguns meses atrás, eu tive um problema ao tentar imprimir na minha impressora sem fio do meu laptop. Acabou por ser o roteador sem fio causando o problema. Após a reinicialização de um roteador, a impressão estava funcionando novamente. Você já tentou reiniciar seu roteador?

Ainda sem sorte?

Ok, agora vamos tentar sudo tcpdump na máquina A. Queremos despejar todos os pacotes com o endereço IP de origem 192.168.1.33 (máquina B) que está chegando na porta 22 sobre eth0 (supondo que sua rede adaptador é eth0 ):

sudo tcpdump -i eth0 src host 192.168.1.33 and dst port 22

Agora, na máquina B, tente:

ssh 192.168.1.22

O tcpdump produz qualquer saída?

Poderíamos também tentar telnet da máquina B para tentar conectar à porta 22 na máquina A:

telnet 192.168.1.22 22

Isso deve produzir algo como:

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

Algum outro computador pode se conectar à máquina A?

A máquina B pode se conectar a outros computadores?

    
por 01.09.2011 / 16:09
0

Faça um tcpdump -nvvvli ethX port 22 or icmp no Ubuntu 11.04 (substitua ethX pelo nome do seu dispositivo de rede, por exemplo, eth0 ). Veja se a conexão na porta 22 (ssh) acerta e se responde corretamente (não ICMP e não TCP RST).

    
por 01.09.2011 / 13:45