Como depurar conexões SSH

Como depurar conexões SSH
Este tutorial analisará alguns métodos e técnicas rápidas que você pode usar para diagnosticar várias conexões SSH, inclusive quando você não pode se conectar a SSH, erros de autenticação e tal.

OBSERVAÇÃO: Antes de começar, verifique se o dispositivo para o qual você deseja se conectar está online e o erro não é resultado do dispositivo estar indisponível.

Edição 1: Serviço SSH não está em execução

Uma causa comum de erros de conexão SSH é o serviço que não está em execução no host remoto. Isso pode ser devido a desligamento acidental de serviço ou serviço não iniciado após uma reinicialização do sistema.

Para verificar se o serviço SSH está em execução, use o gerenciador do sistema usando o comando:

SUDO SYSTEMCTL STATUS SSHD

O comando acima deve relatar se o serviço estiver em execução ou não, como mostrado nas capturas de tela abaixo.

Solução

Para resolver problemas de SSH causados ​​pelo serviço que não está em execução, use o sistema para iniciar o serviço. Se o serviço responder com erros, verifique os logs e corrija os problemas relatados no log.

Use o comando abaixo para verificar os logs de serviço.

grep 'sshd'/var/log/auth.registro

Use o comando abaixo para iniciar ou interromper o serviço SSH usando o Systemd.

sudo systemctl start sshd

Edição 2: SSH em porta fora do padrão

A segunda questão comum ao depurar conexões SSH é o uso de uma porta não padrão. Se o SSH estiver em execução em outra porta que não seja a porta padrão 22, você não se conectará ao host remoto, a menos que especifique explicitamente a porta na qual o SSH está executando.

Para visualizar a porta em que o SSH está em execução, use uma ferramenta como o NetStat como abaixo:

[CENTOS@CENTOS8 ~] $ SUDO NETSTAT -PTLN | Grep SSH
TCP 0 0 0.0.0.0:56 0.0.0.0:* Ouça 1131/sshd
tcp6 0 0 ::: 56 :::* Ouça 1131/sshd

A saída acima mostra em qual porta o serviço SSH está sendo executado. Nesse caso, é a porta 56.

Solução

Para resolver esse problema, você pode usar as informações do NetStat para especificar explicitamente a porta em seu comando ssh como:

Nome de usuário ssh@ip -p 56

Edição 3: Outro serviço usando a mesma porta

Outra causa de erros de conexão SSH é se outro serviço ou processo também usar a mesma porta que o serviço SSH. Por exemplo, se o SSH for explicitamente especificado para ser executado na porta 80 (IDEA TERRÍVEL), um serviço como o Apache pode estar usando a mesma porta.

Para visualizar se outro processo estiver usando a mesma porta que o SSH, verifique os logs usando o comando:

SUDO Journalctl -t SSHD

Este comando deve retornar um erro como o mostrado abaixo, indicando se outro processo usa a porta ligada à SSH.

SSHD [110611]: Erro: ligue para a porta 80 em 0.0.0.0 falha: endereço já em uso

É bom garantir que o erro de ligação da porta seja causado por outro serviço, não por medidas de segurança como Selinux.

Solução

Existem várias maneiras de usar para resolver este problema. Esses incluem:

O primeiro é vincular o serviço ssh a uma porta diferente. Você pode fazer isso editando o arquivo de configuração SSH. Por exemplo, altere a entrada da porta para a porta 3009, conforme mostrado nos comandos:

sudo nano/etc/ssh/sshd_config
Porta 3009

Outro método que você pode usar para resolver esse problema é interromper o serviço usando a porta SSH. Por exemplo, pare o serviço Apache usando a porta 80 como:

sudo systemctl pare httpd
sudo systemctl desativando httpd

Edição 4: Firewall

Se você tentou todos os métodos acima e ainda não há conexão SSH, poderá passar para a próxima causa possível da questão: restrições de firewall. Dependendo do método do firewall que você está usando (UFW ou iptables), você precisa garantir que o firewall permita conexões SSH.

Solução

As regras do firewall são amplas e podem variar dependendo da configuração do sistema. Assim, não posso cobrir todos os aspectos. No entanto, a seguir é uma solução simples para garantir que o serviço SSH seja permitido no UFW Firewall.

sudo ufw permitir /tcp

Você também pode redefinir todas as regras da UFW e começar de novo. Isso permitirá que você solucione as conexões do firewall do zero.

SUDO UFW Reset

Edição 5: Logins de senha desativados

Às vezes você pode configurar o SSH para não aceitar logins de senha e usar apenas a autenticação de chave pública. Isso pode causar um problema se a chave pública não estiver disponível no servidor ou perdendo seu par de chaves privadas.

Para verificar se os logins de senha são permitidos, CAT a configuração SSH como:

[CENTOS@CENTOS8] $ SUDO GREP PasswordAthentication/etc/ssh/sshd_config
#PasswordAuthentication Sim
PasswordAuthentication Sim
# PasswordAuthentication. Dependendo da sua configuração de PAM,
# Autenticação PAM, então ative isso, mas defina a senha da autenticação

A saída acima mostra que os logins de senha são permitidos.

Solução

Para resolver o problema acima, você pode usar dois métodos:

Primeiro, se você tiver o valor definido como não, altere o valor da senha da autenticação para sim e reiniciar o serviço SSH.

O outro método é criar um par de valores de chave SSH e usá-lo para fazer login no servidor. Para aprender a criar o par de valores-chave SSH, use o seguinte guia.

https: // linuxhint.com/find-ssh-public-key/

https: // linuxhint.com/use-ssh-copy-id-command/

Conclusão

Neste guia rápido, discutimos as principais causas de erros de conexão SSH e como você pode resolvê -los. Embora este guia abranja problemas comuns, você pode encontrar erros específicos para o seu sistema com base na configuração e permissões.