Skip to content

Cliente SSH

O SSH Client é um programa que permite conectar e fazer login com segurança em um computador remoto (um servidor SSH) por meio de uma rede, fornecendo uma interface de linha de comando (CLI) para administração remota, transferências de arquivos (SFTP) e tunelamento seguro.

Instalação SSH Client em um computador Linux

Section titled “Instalação SSH Client em um computador Linux”

Muitas distribuição Linux já possui um cliente SSH pré-instalado, mas se precisar, os comandos abaixo instalam o pacote openssh-client:

Instalação do cliente SSH
sudo apt install openssh-client


Para verificar a instalação:

Versão do cliente SSH
ssh -V

Antes de mostrar como usar o SSH Client para se conectar à uma máquina remota, preciso mostrar o que acontece ao conectar na primeira vez via SSH.

Na sua primeira conexão você verá uma mensagem semelhante a esta:

Mensagem primeiro acesso
ssh sysadmin@192.168.0.100
The authenticity of host '192.168.0.100 (192.168.0.100)' can't be established.
ED25519 key fingerprint is SHA256:MqBPY8ng+no7j/57haVfkUgW4iQlHcIoCYQAGXb2WuE.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Vou explicar cada parte:

  • ssh syssadmin@192.168.0.100: Você está tentando conectar como usuário sysadmin no servidor com IP 192.168.0.100.
  • The authenticity of host '192.168.0.100 (192.168.0.100)' can't be established.: É a primeira vez que você se conecta a esse servidor. O SSH não tem registro prévio dessa máquina no arquivo ~/.ssh/known_hosts, então não pode verificar automaticamente se o servidor é realmente quem diz ser.
  • ED25519 key fingerprint is SHA256:MqBPY8ng+no7j/57haVfkUgW4iQlHcIoCYQAGXb2WuE.: O servidor apresentou sua chave pública ED25519 (um algoritmo moderno de criptografia assimétrica). O fingerprint é um hash SHA256 dessa chave - é como uma “impressão digital” única do servidor.
  • This key is not known by any other names.: Essa chave não está associada a outros nomes de host ou IPs no seu sistema.
  • Are you sure you want to continue connecting (yes/no/[fingerprint])?: O SSH está pedindo confirmação. Você tem três opções:
    • yes: Aceita e adiciona a chave ao known_hosts
    • no: Cancela a conexão
    • fingerprint: Você pode colar o fingerprint exato para validação adicional


Agora, de forma mais detalhada:

  1. Início da Conexão. Quando você executa ssh sysadmin@192.168.0.100, o cliente SSH:
    • Estabelece uma conexão TCP na porta 22 (padrão SSH)
    • Inicia o handshake SSH com o servidor

  1. Troca de Identidade do Servidor. O servidor envia sua chave pública (host key) para provar sua identidade. No seu caso, é uma chave ED25519. Cada servidor SSH tem um par de chaves única:

    • Chave privada: fica guardada no servidor (ex: /etc/ssh/ssh_host_ed25519_key)
    • Chave pública: enviada aos clientes (ex: /etc/ssh/ssh_host_ed25519_key.pub)

  1. Verificação da Autenticidade. O cliente SSH procura essa chave no arquivo ~/.ssh/known_hosts. Como é a primeira vez:

    • Não encontra nada registrado → não pode validar automaticamente
    • Calcula o fingerprint (hash SHA256) da chave recebida
    • Exibe o aviso pedindo sua confirmação manual

  1. Sua Decisão. Aqui está o ponto crítico de segurança. Você precisa ter certeza que está falando com o servidor correto, não com um impostor. Idealmente, você deveria:
    • Pegar o fingerprint real do servidor (logando diretamente nele ou consultando o admin)
    • Comparar com o exibido na tela
    • Só aceitar se for idêntico

  1. Ao Digitar yes. O cliente SSH:
    • Adiciona a chave do servidor em ~/.ssh/known_hosts
    • Marca aquele IP/hostname como confiável
    • Prossegue com a autenticação do usuário (senha ou chave SSH)

  1. Conexões Futuras. Nas próximas vezes que você conectar:
    • O servidor enviará a mesma chave pública
    • O cliente compara com a registrada no ~/.ssh/known_hosts
    • Se for idêntica: conexão prossegue automaticamente
    • Se for diferente: SSH bloqueia e exibe alerta de possível ataque MITM (man-in-the-middle).

No SSH podemos conectar usando o padrão usuário e senha ou usando chaves criptográficas (chave pública e chave privada).

Nesta etapa irei mostrar as diferentes formas de acessar uma máquina via SSH usando usando o padrão usuário e senha

Acesso simples
fernando@meupc:~$ ssh 192.168.0.100
  • fernando@meupc:~$: Este é o prompt do Bash no meu computador local, ele mostra que o usuário fernando está logado no computador meupc.
  • ssh 192.168.0.100: Este é o comando em si, onde eu uso o comando ssh para conectar no computador que possui o endereço IP 192.168.0.100.

Quando conectamos desta forma o SSH entende que você pretende usar o mesmo usuário local para se conectar no servidor remoto. No comando acima, ele irá considerar que no computador remoto você já possui o usuário fernando.

A saída do comando será assim:

Solicitando senha
fernando@192.168.0.100's password:

É só inserir a senha do usuário fernando. Lembrando que este usuário deve estar configurado na máquina remota e a senha pode ser diferente do computador local.

No meu computador eu utilizo o usuário fernando porém, não computador que eu quero acessar eu utilizo o usuário sysadmin.

Vamos acessar agora informando o usuário remoto:

Acesso informando o usuário
ssh sysadmin@192.168.0.100
  • ssh: O cliente SSH
  • sysadmin: O usuário do computador remoto que vou usar para logar.
  • @: Vem do inglês “at” e indica que o usuário (sysadmin) irá conectar na máquina remota (192.168.0.100).
  • 192.168.0.100: Endereço IP da máquina remota. Ao invés do endereço IP pode ser o endereço DNS.

Será solicitada a senha do usuário sysadmin:

Solicitando senha
sysadmin@192.168.0.100's password:

Após a conexão (usando usuário e senha ou chaves criptográficas) e depois da mensagem do primeiro acesso (fingerprint) você verá um prompt da máquina remota:

Prompt da máquina remota
sysadmin@server01:~$
  • sysadmin: O nome do usuário logado na máquina remota.
  • server01: O nome (hostname) da máquina remota.
  • ~: Indica que está no diretório home do usuário sysadmin (/home/sysadmin/).
  • $: Indica que não é um usuário root.



OpenSSH - Manual SSH Client