A Sessão SSH é o estado operacional que ocorre após o sucesso do “aperto de mão” (handshake) e da autenticação. Quando dizemos que uma conexão segura foi estabelecida, significa que o cliente e o servidor criaram um túnel criptográfico íntegro, onde a identidade de ambos foi verificada e uma chave de sessão simétrica única foi gerada para proteger o tráfego subsequente.


1. O Estado de “Conexão Estabelecida”

Tecnicamente, uma conexão SSH estabelecida não é apenas um socket TCP aberto; é uma construção lógica de várias camadas de segurança que atingiram a maturidade:

  • Camada de Transporte (RFC 4253): Garante que a troca de chaves (KEX) foi concluída e que o sigilo direto perfeito (Perfect Forward Secrecy) está ativo.

  • Camada de Autenticação (RFC 4252): Confirma que o servidor aceitou as credenciais (senha, chave pública ou GSSAPI) e vinculou a sessão a um usuário específico do sistema.

  • Cifragem Ativa: A partir deste ponto, cada byte enviado pelo teclado do cliente é cifrado antes de sair para a rede e decifrado apenas dentro da memória do servidor.


2. Características do Túnel Estabelecido

Uma vez que a conexão está segura e ativa, ela apresenta propriedades fundamentais:

  1. Bidirecionalidade: Tanto o cliente quanto o servidor podem enviar dados simultaneamente de forma segura.

  2. Multiplexação: Uma única conexão segura estabelecida pode suportar múltiplos “canais” (ex: um shell interativo, uma transferência de arquivo via SFTP e um encaminhamento de porta rodando ao mesmo tempo no mesmo túnel).

  3. Integridade Contínua: Cada pacote possui um número de sequência e um código de autenticação de mensagem (MAC). Se houver qualquer tentativa de injeção de dados no túnel, a conexão é derrubada instantaneamente.

3. O “Welcome Message” e o Shell

O sinal visível para o usuário de que a conexão segura foi estabelecida é, geralmente, a exibição do MOTD (Message of the Day) e o surgimento do prompt de comando (ex: user@server:~$).

Neste estágio:

  • O servidor alocou um PTY (Pseudo-Terminal) para o usuário.

  • As variáveis de ambiente (como PATH e TERM) foram carregadas.

  • O log de “Last Login” foi atualizado nos arquivos de auditoria do sistema (ex: /var/log/auth.log).


4. Manutenção da Sessão (Keep-Alive)

Uma conexão estabelecida pode enfrentar problemas de inatividade (idle). Para garantir que o túnel permaneça seguro e ativo através de firewalls e NATs, utilizam-se mensagens de controle:

  • ServerAliveInterval (Cliente): O cliente envia um pacote nulo cifrado para o servidor para confirmar que ele ainda está lá.

  • ClientAliveInterval (Servidor): O servidor verifica se o cliente ainda possui a sessão ativa. Como essas mensagens são enviadas dentro do túnel já estabelecido, elas também são cifradas e protegidas contra manipulação.

5. Finalização Segura

A sessão permanece estabelecida até que:

  • O usuário execute o comando exit ou logout.

  • O processo cliente ou servidor seja encerrado.

  • Ocorra uma falha de rede (timeout).

No encerramento, as chaves de sessão temporárias são imediatamente apagadas da memória RAM de ambas as máquinas, garantindo que, mesmo que o hardware seja periciado posteriormente, os dados daquela sessão específica não possam ser recuperados.