Tutoriel Linux

Conectar-se a um servidor Linux com PuTTY

Débutant11 min de lecture

Para abrir uma sessão SSH com o PuTTY, você precisa do endereço do servidor, sua porta SSH, uma conta Linux autorizada e o método de autenticação previsto. Na primeira conexão, verifique também a impressão digital do servidor por um canal independente antes de aceitar o aviso ou inserir um segredo.

Posto de trabalho conectado a um servidor para administração remota do Linux
PuTTY serve como cliente para abrir uma sessão SSH no servidor Linux.

PuTTY é o cliente executado em seu computador Windows; sshd é o serviço SSH que responde no servidor Linux. As etapas abaixo cobrem uma primeira conexão a um servidor já configurado, sem modificar sua política SSH.

Preparar o endereço, a porta e a conta Linux

  • PuTTY instalado a partir da página oficial de download.
  • O nome DNS ou o endereço IP do servidor, assim como a porta SSH informada pelo administrador. A porta 22 é comum, mas não é certeza: um redirecionamento de rede também pode apresentar outra porta ao cliente.
  • O nome da conta Linux que lhe foi atribuído. Este não é necessariamente sua conta do Windows; não presuma que você deve se conectar como root.
  • O método aceito pelo servidor: senha, chave privada já preparada, ou outro mecanismo imposto pelo administrador.
  • A impressão digital da chave do host do servidor, obtida pelo console do provedor ou de um administrador confiável.

Se o acesso passar por um VPN, um bastion ou uma lista de endereços autorizados, use o caminho previsto antes de abrir o PuTTY. Um endereço privado não é acessível da Internet sem o roteamento correspondente. O servidor deve já aceitar as conexões SSH; a instalação e o endurecimento do OpenSSH não fazem parte deste procedimento.

Configurar uma sessão SSH no PuTTY

Na categoria Session, preencha Host Name (or IP address) com o nome DNS ou o endereço IP, sem https:// ou caminho da página. Escolha SSH em Connection type, e então informe a porta fornecida pelo administrador.

Você pode digitar a conta Linux no prompt login as:. Para preenchê-la automaticamente, abra Connection > Data e preencha Auto-login username. Deixe as opções SSH e criptográficas como padrão, exceto se houver instrução específica do administrador: não substitua SSH por Telnet.

Para manter essas configurações, volte para Session, insira um nome em Saved Sessions, e então clique em Save. Para se conectar depois, selecione essa sessão, clique em Load, então em Open. Após uma modificação, salve novamente. Uma sessão mantém os parâmetros de conexão; não conte com ela para lembrar sua senha.

A documentação oficial do PuTTY explica os campos de conexão e o aviso de chave do host, enquanto seu capítulo sobre configuração detalha o registro e o carregamento das sessões.

Verificar a impressão digital do servidor antes de aceitar

PuTTY pode exibir um aviso na primeira conexão: a chave do host deste servidor ainda não está registrada em seu cache. Esta chave identifica a máquina. Ela é diferente da sua chave de usuário, que pode ser usada para provar que você tem o direito de abrir a conta.

Antes de clicar em Accept, compare o algoritmo e a impressão digital SHA256 exibidos pelo PuTTY com o valor obtido por uma fonte independente, por exemplo, o console do provedor. A partir de um console confiável do servidor Linux, o administrador pode exibir a impressão da chave pública Ed25519 com o seguinte comando. Não o execute no PowerShell nem na janela do PuTTY antes da conexão.

ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub -E sha256

Compare uma impressão do mesmo tipo: se o PuTTY apresentar uma chave RSA, solicite ou exiba a impressão da chave pública RSA correspondente. Nunca copie uma chave privada para realizar essa verificação. O comando acima utiliza o arquivo público Ed25519.

Accept memoriza a chave do host. Connect Once permite uma conexão sem memorizar a chave, mas não dispensa a verificação da impressão. Se o valor não corresponder, se a chave tiver mudado sem explicação, ou se você não tiver um meio independente de controlá-la, escolha Cancel e verifique com o administrador. Uma reinstalação ou uma rotação planejada pode explicar uma mudança, mas deve ser confirmada antes de atualizar o cache.

Um aviso de chave modificada não é corrigido ao aceitar automaticamente ou ao apagar todas as chaves registradas. O cache de hosts do PuTTY no Windows é distinto do arquivo ~/.ssh/known_hosts utilizado pelo OpenSSH; o comando ssh-keygen -R não limpa o cache do PuTTY. Para entender a verificação fora de banda, consulte também nosso artigo sobre a verificação de um aviso de chave do host: seus comandos known_hosts dizem respeito ao OpenSSH, não ao PuTTY.

A documentação do PuTTY descreve as opções Accept, Connect Once e Cancel. Para calcular a impressão de uma chave pública, consulte o manual do OpenSSH para ssh-keygen.

Autenticar com uma senha ou uma chave

Se o servidor permitir a senha

Após a validação da impressão, digite o nome da conta Linux em login as: se você não a pré-preencheu. Pressione Enter, e então insira a senha da conta e confirme. Nada aparece enquanto você digita a senha: nem letras nem asteriscos. Isso é normal. Verifique a conta, a disposição do teclado e a tecla Caps Lock em caso de recusa, sem multiplicar as tentativas.

Um servidor pode proibir a autenticação por senha ou impor uma chave e uma etapa adicional. Nesse caso, utilize o método previsto ou pergunte ao administrador sobre como proceder; não ative um método proibido para contornar a política.

Se você já tem uma chave privada no formato PuTTY (.ppk)

No PuTTY, abra Connection > SSH > Auth > Credentials, e então indique seu arquivo em Private key file for authentication. Volte para Session e salve as configurações. A chave pública correspondente deve já estar autorizada para a conta Linux visada. A chave privada permanece em seu computador: não a envie para o servidor.

Se a chave estiver protegida por uma frase secreta (passphrase), o PuTTY pode solicitar a você para desbloquear a chave local. Esta não é a senha da conta Linux. Se você tem uma chave privada OpenSSH ao invés de um arquivo .ppk, o PuTTYgen pode importá-la via Conversions > Import key, e então salvá-la no formato PuTTY. O guia completo para geração, conversão e implantação de chaves é distinto desta primeira conexão; para uma implantação a partir de um computador Linux, veja como instalar uma chave pública com ssh-copy-id. Este comando não é uma função do PuTTY e não está disponível em todos os lugares no Windows.

Os menus atuais estão descritos na seção Auth > Credentials da documentação PuTTY. O capítulo do PuTTY sobre chaves públicas também cobre a importação com PuTTYgen e o papel de authorized_keys.

Verificar o shell obtido

Uma vez conectado, execute esses comandos no terminal do PuTTY: eles rodam no shell remoto do Linux. Eles não exibem um segredo.

whoami
hostname
pwd
printf '%sn' "$SSH_CONNECTION"

Verifique se whoami retorna a conta esperada e se hostname corresponde ao servidor previsto. pwd indica o diretório atual. SSH_CONNECTION, quando definida, fornece os endereços e portas do cliente e então do servidor para esta sessão. Com um proxy ou tradução NAT, esses valores não são necessariamente os endereços públicos; alguns ambientes não definem essa variável.

O nome do host exibido não substitui a verificação criptográfica da impressão feita antes da autenticação. Quando você terminar, feche adequadamente a sessão com:

exit

Se a autenticação for bem-sucedida, mas nenhum shell for aberto, a conta pode estar sujeita a uma restrição ou não ter um shell interativo. Peça ao administrador para verificar a configuração da conta. Não modifique o servidor para tornar esse controle possível. Finalmente, recarregue sua sessão registrada no PuTTY para confirmar que o host, a porta e a conta pré-preenchidos são os esperados.

Diagnosticar erros do PuTTY sem cortar o acesso

Abra Event Log a partir do menu da janela do PuTTY e registre a mensagem exata bem como a etapa em que a conexão para. Não compartilhe um log que contenha endereços ou detalhes da infraestrutura sem ocultá-los.

Recusa ou tempo esgotado antes do prompt de conexão

Desde Windows PowerShell, você pode testar a porta TCP indicada pelo administrador. Substitua os dois valores de exemplo pelos do seu servidor: este comando não verifica nem a impressão nem suas credenciais.

Test-NetConnection -ComputerName servidor.exemplo.net -Port 22

Observe TcpTestSucceeded. Um valor False pode vir do endereço, do roteamento, de um filtragem ou de uma porta incorreta; ele não prova, por si só, que o sshd está parado. Um ping bloqueado também não é suficiente para concluir que o SSH está inacessível.

  • « Network error: Connection refused »: a conexão TCP foi recusada. Verifique o nome ou endereço, a porta e, se você tiver um console independente, a porta realmente escutando. Um rejeição de rede explícita também pode produzir esta mensagem.
  • « Network error: Connection timed out »: nenhuma resposta chegou dentro do prazo. Verifique o endereço, o DNS, o VPN ou a rota, e depois as regras de filtragem e do provedor ou do NAT. Esta mensagem não diz respeito a uma senha incorreta.

Se você tiver um console confiável, esses testes de leitura somente são executados no servidor Linux, não no PowerShell ou em uma sessão do PuTTY que ainda não foi bem-sucedida:

sudo ss -ltnp
sudo systemctl status ssh --no-pager
sudo systemctl status sshd --no-pager
sudo systemctl status ssh.socket --no-pager
sudo journalctl -u ssh -n 50 --no-pager
sudo journalctl -u sshd -n 50 --no-pager

Com ss, procure pelo endereço e pela porta realmente escutando: uma escuta limitada à interface de loopback não responde a um cliente externo. A unidade systemd é frequentemente chamada de ssh no Debian ou Ubuntu e sshd em muitas distribuições RHEL ou Fedora; algumas instalações do Ubuntu usam ssh.socket. Execute apenas as verificações pertinentes para a distribuição. “Unit not found” não prova por si só uma falha. Nos logs, verifique a unidade existente e a hora da sua tentativa; um log vazio pode simplesmente indicar que você está consultando a unidade ou destino errado.

Para aprofundar as verificações sem reiniciar o serviço, consulte nosso artigo sobre a verificação do serviço SSH no Ubuntu. Este diagnóstico permanece intencionalmente limitado: os casos detalhados de recusa e de tempo esgotado estão em guias separados. Não desative o firewall, não relaxe StrictModes e não reinicie o SSH automaticamente para tentar restabelecer uma primeira conexão.

Falha de autenticação ou de carregamento de chave

  • « Access denied » ou « Authentication refused »: a troca SSH começou. Verifique a conta Linux, o método permitido e a entrada. Um administrador pode correlacionar a hora da tentativa com os logs, sem ativar o acesso root ou um método proibido.
  • « Unable to use key file » ou « Couldn’t load private key »: verifique se o PuTTY aponta para a chave correta e se seu formato é suportado. Uma chave OpenSSH pode precisar de importação e salvamento no formato PuTTY com o PuTTYgen. Renomear um arquivo .pem para .ppk não o converte.
  • « Server refused our key » ou « Server refused our public key »: verifique se a chave corresponde à conta visada e se sua chave pública está autorizada lá. A partir de um console já acessível sob a conta alvo, verifique os caminhos e permissões antes de qualquer correção:
ls -ld "$HOME" "$HOME/.ssh"
ls -l "$HOME/.ssh/authorized_keys"

Esses comandos são executados na conta Linux alvo, em uma sessão já acessível. Verifique o proprietário, os caminhos, as permissões e a presença da linha completa da chave pública. Não aplique uma mudança recursiva de proprietário ou permissões sem entender o contexto; nunca desative StrictModes para contornar uma recusa.

  • « No supported authentication methods available »: nenhum método proposto pelo PuTTY é utilizável de acordo com a política do servidor. Use a chave ou o mecanismo solicitado, ou entre em contato com o administrador; não ative um método rejeitado.
  • « Too many authentication failures »: muitas chaves ou tentativas foram propostas, às vezes por um agente. Selecione a chave prevista e verifique o Pageant se você o utiliza; não aumente arbitrariamente o limite no lado do servidor.
  • « Network error: Software caused connection abort » ou « Connection reset by peer »: a conexão foi interrompida pela rede ou fechada remotamente. Compare o Event Log com os logs do servidor na mesma hora. Um keepalive não corrige nem uma rota, nem uma chave errada, nem uma recusa inicial.
  • Janela preta sem texto: isso pode ser uma entrada de senha sem eco, uma espera de resposta SSH ou uma conta à qual nenhum shell interativo é concedido. Uma janela aberta não prova por si só que você está conectado.

Se um acesso administrativo independente estiver disponível, sudo /usr/sbin/sshd -t pode verificar a sintaxe da configuração no servidor Linux. Esta verificação não testa a rede e não foi executada aqui em sua máquina. Não modifique a configuração e não reinicie o serviço apenas para tentar uma conexão.

Antes de fechar o PuTTY, verifique mais uma vez: o endereço e a porta estão os informados, a conta é a conta Linux esperada, a impressão foi comparada por uma fonte independente, a autenticação segue a política do servidor e whoami e hostname confirmam a sessão visada.