Capítulo 12. Usando comunicações seguras entre dois sistemas com OpenSSH

SSH (Secure Shell) é um protocolo que fornece comunicações seguras entre dois sistemas usando uma arquitetura cliente-servidor e permite que os usuários façam login em sistemas host de servidores remotamente. Ao contrário de outros protocolos de comunicação remota, como FTP ou Telnet, o SSH criptografa a sessão de login, o que impede que intrusos coletem senhas não criptografadas da conexão.

O Red Hat Enterprise Linux inclui os pacotes básicos OpenSSH: o pacote geral openssh, o pacote openssh-server e o pacote openssh-clients. Note que os pacotes OpenSSH requerem o pacote OpenSSL openssl-libs , que instala várias bibliotecas criptográficas importantes que permitem que OpenSSH forneça comunicações criptografadas.

12.1. SSH e OpenSSH

SSH (Secure Shell) é um programa para efetuar login em uma máquina remota e executar comandos nessa máquina. O protocolo SSH fornece comunicações criptografadas seguras entre dois hosts não confiáveis através de uma rede insegura. Você também pode encaminhar conexões X11 e portas TCP/IP arbitrárias através do canal seguro.

O protocolo SSH atenua as ameaças à segurança, tais como interceptação da comunicação entre dois sistemas e imitação de um determinado host, quando você o utiliza para login remoto ou cópia de arquivo. Isto porque o cliente e o servidor SSH usam assinaturas digitais para verificar suas identidades. Além disso, toda a comunicação entre os sistemas cliente e servidor é criptografada.

OpenSSH é uma implementação do protocolo SSH suportada por uma série de sistemas operacionais Linux, UNIX e similares. Ele inclui os arquivos centrais necessários tanto para o cliente OpenSSH quanto para o servidor. A suíte OpenSSH consiste das seguintes ferramentas de espaço do usuário:

  • ssh é um programa de login remoto (cliente SSH)
  • sshd é um OpenSSH daemon SSH
  • scp é um programa seguro de cópia remota de arquivos
  • sftp é um programa seguro de transferência de arquivos
  • ssh-agent é um agente de autenticação para o cache de chaves privadas
  • ssh-add adiciona identidades chave privadas a ssh-agent
  • ssh-keygen gera, gerencia e converte chaves de autenticação para ssh
  • ssh-copy-id é um script que adiciona chaves públicas locais ao arquivo authorized_keys em um servidor SSH remoto
  • ssh-keyscan - reúne as chaves de anfitrião público do SSH

Existem atualmente duas versões do SSH: a versão 1, e a mais recente versão 2. A suíte OpenSSH no Red Hat Enterprise Linux 8 suporta apenas o SSH versão 2, que tem um algoritmo melhorado de troca de chaves não vulnerável a explorações conhecidas na versão 1.

OpenSSH, como um dos subsistemas criptográficos centrais da RHEL, utiliza políticas de criptografia em todo o sistema. Isto garante que os conjuntos de cifras fracas e algoritmos criptográficos sejam desativados na configuração padrão. Para ajustar a política, o administrador deve usar o comando update-crypto-policies para fazer configurações mais rígidas ou mais frouxas ou optar manualmente pela exclusão das políticas criptográficas de todo o sistema.

A suíte OpenSSH utiliza dois conjuntos diferentes de arquivos de configuração: aqueles para programas de clientes (ou seja, ssh, scp e sftp), e aqueles para o servidor (o daemon sshd ). As informações de configuração SSH de todo o sistema são armazenadas no diretório /etc/ssh/. As informações de configuração do SSH específicas do usuário são armazenadas em ~/.ssh/, no diretório home do usuário. Para uma lista detalhada dos arquivos de configuração do OpenSSH, consulte a seção FILES na página de manual sshd(8).

Recursos adicionais