Respostas de ping e um login SSH recusado podem ser verdadeiros ao mesmo tempo, e o par não incrimina o túnel. Respostas de eco e uma conexão TCP à porta 22 são testes diferentes com seletores diferentes, políticas diferentes e muitas vezes destinos diferentes. Capture uma tentativa SSH deliberada e depois nomeie a última etapa que ela alcançou. Esse único artefato substitui uma dúzia de mudanças especulativas de configuração.

Capture uma tentativa, não uma sessão de cutucadas

Execute o cliente uma vez com diagnósticos detalhados, compartilhamento de conexão desativado e um tempo limite de conexão limitado. Desativar o compartilhamento importa porque uma conexão mestre já autenticada responderia pela nova tentativa e esconderia a falha que você está perseguindo.

ssh -4 -vv -o ControlPath=none -o ConnectTimeout=10 [email protected]

Guarde o destino, a família de endereços, o carimbo de data e hora e o último erro não secreto. O sinalizador IPv4 também significa que esta tentativa não diz nada sobre um caminho IPv6 para o mesmo nome, então não generalize a partir dela. Anote de onde a tentativa foi feita. Uma verificação no gateway da VPN não é o mesmo ponto de vista que um notebook atrás dele, e a maioria das contradições nesses chamados vem de misturar os dois.

Etapas um e dois: TCP antes do SSH

A primeira fronteira é a acessibilidade do socket: um endereço, uma porta e uma rota que o pacote realmente segue. Se a conexão TCP nunca se completa, ainda não existe nada acima dela, e chaves de host e contas são irrelevantes.

nc -vz 10.90.4.20 22
ip route get 10.90.4.20
tcpdump -ni any 'host 10.90.4.20 and port 22'

Correlacione a captura com a tentativa do cliente. Um SYN que sai e nada que retorna aponta para filtragem, seletores ou uma rota ausente do outro lado; uma resposta com reset aponta para algo que rejeita ativamente em vez de descartar. A segunda fronteira é a troca do protocolo SSH em si. Uma conexão TCP que se completa e depois trava passou da acessibilidade e entrou em negociação, resposta do servidor ou tratamento de pacotes. Essa é outra investigação, e é onde os problemas relacionados ao tamanho se tornam plausíveis pela primeira vez.

Etapa três: qual chave respondeu

Quando o transporte está ativo, o cliente verifica a chave de host do servidor. Uma rejeição aqui é uma afirmação sobre identidade, não sobre criptografia: o par apresentou uma chave que sua política não aceita. Trate isso como condição de parada e verifique fora de banda, contra o console ou o operador que reconstruiu o host. Apagar a entrada memorizada para limpar o aviso é o único atalho que você deve recusar, porque destrói a evidência de que algo respondeu inesperadamente.

Se o host realmente foi reconstruído, remova o registro obsoleto somente depois de confirmar a nova impressão digital, e anote a data e o motivo. O próximo engenheiro encontrará o mesmo aviso e precisa desse contexto.

Etapas quatro e cinco: conta versus permissão

A autenticação é a quarta fronteira. Credenciais rejeitadas significam que o servidor avaliou a tentativa e a recusou; verifique a conta, o tipo de credencial que o servidor aceita e a política do próprio servidor em vez da senha da VPN. A quinta fronteira é a autorização após um login bem-sucedido. Um usuário autenticado ainda pode ter negado um shell, um comando, um subsistema ou um encaminhamento, e essas recusas parecem falhas para quem lê apenas a última linha do cliente.

Last stage reachedWhat it provesWhere to look next
No TCP connectionNo SSH transport existsAddress, port, route, selectors, filter, listener
TCP up, exchange incompleteReachability is not the blockerServer response, negotiation, packet handling
Host identity rejectedThe peer is not the expected hostIndependently verified host key
User authentication rejectedThe attempt reached authenticationAccount, credential and server policy
Authenticated, session deniedLogin succeeded, the operation did notShell, command or forwarding permission

Pare depois de algumas tentativas de senha malsucedidas. Suposições repetidas produzem bloqueios que depois parecem uma segunda falha não relacionada e custam mais tempo do que o chamado original.

Reversão e o registro que você mantém

Mude uma coisa de cada vez e anote o que mudou antes de testar novamente. Se uma mudança piora a tentativa, reverta-a imediatamente em vez de empilhar outra correção por cima. Repita a operação original a partir do cliente e do contexto originais. Um login bem-sucedido de outra máquina, em outra família de endereços, não é uma reprodução e não prova a correção.

Sanitize o que você compartilha. A saída detalhada do cliente pode conter nomes internos, rótulos de conta, caminhos de chaves e identificadores de chaves públicas, então publique a conclusão por etapas em vez de um rastro bruto.

Artigos relacionados