Por que estou recebendo um erro de "porta 22: conexão recusada"?

70

Estou recebendo um

port 22: Connection refused 

erro ao conectar-se a um servidor.

Eu tenho o cliente e o servidor openssh instalados e eles estão em execução. Mas ainda há um erro. Por favor ajude.

ankesh
fonte
2
Apenas para esclarecer, o servidor openssh está instalado no servidor?
Kevin
Verifique se o ssh está em execução na porta 22 e se você tem uma regra de firewall bloqueando a porta.
manula Waidyanatha
11
De acordo com mim, configure o firewall para permitir o ssh (porta 22) atualmente bloqueada pelo firewall.
Ketan Patel
Isso também pode ocorrer provavelmente devido à perda temporária de rede. Portanto, verifique sua conexão com a internet.
precisa saber é o seguinte

Respostas:

78

Eu passei por esse problema e finalmente obtive a resposta apropriada.

sudo apt-get update
sudo apt-get install openssh-server
sudo ufw allow 22

Então entrou raspi-configem uma janela de terminal e ativou o ssh.

Isso permitirá que a porta 22 seja usada para sshd.

Doogle
fonte
Mesmo problema aqui que @SDsolar
Nadav B
@ Nadiv, eu também tive que usar raspi-config para ativar o ssh. A resposta foi editada para refletir isso.
precisa saber é o seguinte
Executou as três primeiras linhas nos dois computadores e o arquivo agora foi transferido com êxito. Por que o Ubuntu não vem com estes instalados / ativados por padrão? O connection refusederro é tão enigmático que eu não fazia ideia de problemas de firewall, nome de usuário, endereço de IP etc. etc. Muito frustrante.
Hatefiend
sudo ufw allow 22trabalhou uma vez. Novamente, o erro começou a aparecer.
vineeshvs 5/09
32

Enquanto estiver no servidor, verifique se o sshd está realmente em execução e se está ouvindo na porta 22:

$ sudo netstat -anp | grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1538/sshd       
tcp6       0      0 :::22                   :::*                    LISTEN      1538/sshd       

Se você não obtiver resultados, ou eles não mostrarem que você está ouvindo no tcp 0.0.0.0:22 ... corrija isso.

Se você mostrar que o sshd está em execução e está escutando na porta tcp 22, verifique se não há nenhuma regra de firewall atrapalhando. Novamente, no servidor:

$ sudo iptables -L | grep ssh
DROP       tcp  --  anywhere             anywhere            tcp dpt:ssh 

Ou, alternativamente,

$ sudo ufw verbose
Status: active

To                         Action      From
--                         ------      ----
22                         DENY        Anywhere
22/tcp                     DENY        Anywhere

Se você vir uma regra como uma das acima, precisará corrigi-la.

Se você não vê nenhuma regra de firewall e vê o serviço em execução no servidor, é hora de verificar sua estação de trabalho e a rede à qual está conectada. Você pode se conectar a outros servidores? Você pode executar ping em sua própria interface ou endereço de loopback? Etc.

Jim Salter
fonte
11
e se você pode se conectar a outros servidores?
precisa
2
Ei, obrigado pela resposta, a minha não é a porta 22, é 2222. Você disse, conserte isso, mas como?
Yogesh Darji 11/03/19
O meu não deu resultados.
SDsolar
corrigi-lo com: sudo ufw allow 22(ou qualquer que seja sua porta é)
John D
O netstat está obsoleto (e não é instalado por padrão nas versões mais recentes do Ubuntu - O comando 'netstat' não foi encontrado, mas pode ser instalado com ... ). Talvez atualizar para iproute2 ?
Peter Mortensen
14

Tente isto

sudo apt-get remove openssh-client openssh-server

e depois

sudo apt-get install openssh-client openssh-server

funcionou para mim :)

Provavelmente não é a solução mais ortodoxa ... :)

PJunior
fonte
3
Usando o dpkg-reconfigure seria possível ser mais fácil de usar, em vez de uma desinstalação solução / reinstalar
Stephen Michael Kellat
11
Eu tive que usar o apt-get purge openssh-server (em vez de remover) para fazê-lo funcionar.
11101101b
6

Me deparei com o mesmo problema depois de instalar o Raspbian. Solução que funcionou para mim:

sudo apt-get purge openssh-server
sudo apt-get install openssh-server
Wouter
fonte
Se isso funcionou, você deve ter alterado seu sshd-config antes.
precisa saber é o seguinte
Editei o sshd_config no Raspbian enquanto tentava configurar o ssh. Esta solução funcionou para mim.
Scott Scott
+1. Única solução que funcionou!
Nada # B
1

Os seguintes comandos funcionaram para mim:

cd /root/.ssh
vi known_hosts

Agora exclua tudo nesse arquivo e entre no terminal:

service sshd restart

Fonte: SSH - Conexão recusada

Sruthil Lal SB
fonte
problema semelhante para mim, mas eu limpei meus known_hosts com ssh-keygen -f "/home/MYUSER/.ssh/known_hosts" -R MYHOST, substituindo no meu usuário linux e host remoto eu estava tentando se conectar
Chris
1

Isso pode corrigi-lo para você também. Tente a conexão de encaminhamento de porta 22 do seu endereço IP de saída para o seu IP local na mesma porta. Trabalhou para mim, permitindo que eu ssh no computador ubuntu remoto.

jackw11111
fonte
0

O IP estático estava errado no meu caso. Descoberto fazendo ping <my_ip>após a troca do servidor. Ainda estava pingando mesmo quando o servidor estava desligado. Alterar o IP resolveu o problema.

vineeshvs
fonte