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.


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.


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.


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 ... :)


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

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


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.