SSH básico: acessar o servidor pela linha de comando
SSH é a porta pela qual você administra o servidor sem monitor: uma janela de texto no seu computador que, na verdade, está rodando lá dentro. Este guia mostra como abrir essa porta a partir de qualquer sistema, como trocar a senha por chaves (mais seguro e mais cômodo) e os poucos comandos que resolvem a maior parte do dia a dia.
- Para quem é
- Quem já tem um servidor Linux instalado na rede e quer administrá-lo de outro computador, sem nunca ter usado terminal.
- Pré-requisitos
- Instalar o Ubuntu Server passo a passo (ou outro Linux com o servidor SSH ativo).
- Você vai sair sabendo
- Conectar do Windows, macOS ou Linux, entender a verificação de fingerprint, criar e instalar chaves, desativar o login por senha com segurança, copiar arquivos e usar os comandos básicos.
O que é SSH e por que ele é a ferramenta central
SSH (Secure Shell) é um protocolo que abre uma sessão de terminal em outro computador através da rede, com tudo criptografado. "Shell" é o programa que recebe comandos digitados e os executa; o SSH leva esse shell até você. Quando você digita ls em uma sessão SSH, o comando roda no servidor e só o texto da resposta viaja pela rede. É leve o bastante para funcionar em qualquer conexão e seguro o bastante para ser o padrão de administração de servidores no mundo inteiro.
Por que ele é a ferramenta central do servidor doméstico? Porque tudo o que vem depois passa por ele: instalar o Docker, criar compartilhamentos, ler logs, atualizar o sistema, investigar um disco que não monta. Mesmo sistemas com interface web, como o OpenMediaVault, têm um SSH por trás para os momentos em que a interface não alcança. Aprender meia dúzia de comandos aqui economiza horas em todos os guias seguintes.
O SSH tem dois lados: o servidor SSH (o programa sshd, que fica escutando na porta 22 do servidor) e o cliente SSH (o programa ssh, que você roda no seu computador). Se você marcou "Install OpenSSH server" na instalação do Ubuntu, o lado do servidor já está pronto. Falta o lado do cliente.
O cliente: o que usar em cada sistema
- Windows 10 e 11 já trazem o cliente OpenSSH embutido. Abra o PowerShell (ou o Terminal do Windows) e o comando
sshestá disponível. Não é preciso instalar nada. O PuTTY, programa gráfico clássico, continua funcionando e tem quem prefira sua janela de configurações salvas, mas ele usa um formato próprio de chaves que complica um pouco a vida; este guia usa o OpenSSH nativo. - macOS tem o cliente embutido. Abra o aplicativo Terminal (em Utilitários) e use
ssh. - Linux tem o cliente em qualquer distribuição de desktop. Abra o terminal.
- Celular: existem aplicativos de SSH para Android e iOS, úteis para uma emergência. Para o dia a dia, um teclado de verdade faz diferença.
A primeira conexão e o tal do fingerprint
Com o endereço IP do servidor anotado (ou reservado no roteador, como em IP fixo, DHCP e reserva de endereço), a conexão é um comando:
ssh [email protected]Troque maria pelo usuário criado na instalação e o endereço pelo do seu servidor. Se o servidor tem um nome que a rede resolve (veja DNS local e nomes de dispositivos), o nome funciona no lugar do IP. Na primeira vez, aparece uma mensagem parecida com esta:
The authenticity of host '192.168.0.25' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?Isso não é um erro. Cada servidor SSH tem uma identidade própria (uma chave de host), e o fingerprint é o resumo dela. O seu cliente está dizendo: "nunca vi este servidor; é ele mesmo?". Dentro da sua própria rede, com o IP que você acabou de anotar, a resposta é yes. O cliente guarda o fingerprint em um arquivo chamado known_hosts e, a partir daí, avisa em voz alta se o servidor naquele endereço mudar de identidade, o que pode indicar que alguém está se passando por ele, ou simplesmente que você reinstalou o sistema (o caso mais comum em casa). Depois do yes, digite a senha do usuário; ela não aparece enquanto você digita. O prompt muda para algo como maria@servidor:~$: você está dentro do servidor.
Para encerrar a sessão, digite exit ou pressione Ctrl+D. Programas que estavam rodando na sessão são encerrados junto; serviços do sistema continuam.
Chaves em vez de senha
Senhas podem ser adivinhadas, reutilizadas e digitadas no lugar errado. O SSH oferece um método melhor: um par de chaves. A chave privada fica só no seu computador e nunca sai dele; a chave pública é copiada para o servidor. Quando você conecta, o servidor envia um desafio que só quem tem a chave privada consegue responder. Ninguém adivinha uma chave, e você para de digitar senha toda vez. A analogia útil é a de um cadeado (chave pública, que você distribui à vontade) e a única chave que o abre (privada, que fica no seu bolso).
- Gerar o par de chaves no seu computadorFunciona igual no PowerShell, no Terminal do macOS e no Linux. Aceite o local padrão com Enter e, quando pedir uma passphrase, defina uma: ela protege a chave privada caso alguém copie o arquivo do seu computador.
TerminalO tipo
ssh-keygen -t ed25519 -C "notebook da maria"ed25519é o recomendado atualmente: chaves curtas, rápidas e seguras. O texto após-Cé só um comentário para identificar de que computador a chave veio. Dois arquivos são criados na pasta.sshdo seu usuário:id_ed25519(privada) eid_ed25519.pub(pública). - Copiar a chave pública para o servidor (macOS e Linux)O utilitário
ssh-copy-idfaz tudo: conecta com senha uma última vez e acrescenta a chave pública ao arquivo certo no servidor.Terminalssh-copy-id [email protected] - Copiar a chave pública para o servidor (Windows)O Windows não traz o
ssh-copy-id, mas um comando no PowerShell faz o mesmo: lê o conteúdo da chave pública e o acrescenta, pelo SSH, ao arquivoauthorized_keysdo servidor.PowerShellEle pede a senha uma vez. Ostype $env:USERPROFILE\.ssh\id_ed25519.pub | ssh [email protected] "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"chmodgarantem as permissões que o SSH exige: se a pasta.sshou o arquivo puderem ser lidos por outros usuários, o servidor ignora a chave por segurança. - TestarRode
ssh [email protected]de novo. Se pedir apenas a passphrase da chave (ou nada, caso não tenha definido uma), funcionou. Se ainda pedir a senha do usuário, veja a seção de erros comuns antes de seguir.
No seu computador, crie (ou edite) o arquivo ~/.ssh/config (no Windows, C:\Users\seu-nome\.ssh\config) com o conteúdo abaixo. A partir daí, ssh nas basta.
Host nas
HostName 192.168.0.25
User maria
IdentityFile ~/.ssh/id_ed25519Desativar o login por senha (com rede de segurança)
Com a chave funcionando, o login por senha vira um ponto fraco desnecessário. Desativá-lo é uma edição no arquivo de configuração do servidor SSH, seguida de um reinício do serviço. A ordem importa: mantenha a sessão atual aberta enquanto testa em uma segunda janela. Se algo der errado, a sessão aberta é o seu caminho de volta para desfazer.
sudo nano /etc/ssh/sshd_configO nano é um editor de texto simples para terminal: setas para navegar, Ctrl+O para salvar, Ctrl+X para sair. Procure a linha com PasswordAuthentication (pode estar comentada com #) e deixe-a assim:
PasswordAuthentication noNo Ubuntu Server, há um detalhe: a pasta /etc/ssh/sshd_config.d/ pode conter um arquivo criado na instalação (como 50-cloud-init.conf) com PasswordAuthentication yes, e o que está nessa pasta vence o arquivo principal. Confira com grep -r PasswordAuthentication /etc/ssh/sshd_config.d/ e, se houver, edite também. Depois, valide a sintaxe e reinicie o serviço:
sudo sshd -t # sem saída = configuração válida
sudo systemctl restart sshAgora, em uma nova janela do seu computador, conecte de novo. Entrou pela chave? Ótimo: pode fechar a sessão antiga. Não entrou? Volte à sessão antiga, troque para yes, reinicie o serviço e investigue com calma. Só feche a sessão antiga quando a nova funcionar.
Tudo neste guia acontece dentro da rede de casa. Encaminhar a porta 22 no roteador para "acessar de fora" coloca seu servidor na mira de varreduras automáticas que testam senhas o dia inteiro; mesmo com chaves, é um alvo desnecessário. Para chegar ao servidor de fora de casa, o caminho correto é uma VPN, explicada em Acesso remoto seguro: VPN, WireGuard, Tailscale e por que não abrir portas. Com a VPN, o SSH continua sendo usado exatamente como aqui, com o mesmo endereço interno.
Os comandos do dia a dia
Você não precisa decorar o Linux. Um punhado de comandos cobre quase tudo que um servidor doméstico pede, e os guias seguintes apresentam os demais quando necessário. O terminal tem um truque que vale aprender no primeiro dia: a tecla Tab completa nomes de arquivos e comandos, e as setas para cima e para baixo percorrem o histórico.
| Comando | O que faz | Exemplo |
|---|---|---|
ls | Lista arquivos e pastas; -la mostra tudo, com permissões e tamanhos | ls -la /mnt |
cd | Entra em uma pasta; sozinho volta à sua pasta pessoal | cd /etc/ssh |
pwd | Mostra em que pasta você está | pwd |
sudo | Executa o comando seguinte como administrador | sudo nano /etc/fstab |
apt | Instala, atualiza e remove programas | sudo apt update && sudo apt upgrade |
systemctl status | Mostra se um serviço está rodando e suas últimas mensagens | systemctl status ssh |
df -h | Espaço usado e livre em cada disco, em unidades legíveis | df -h |
free -h | Memória usada e livre | free -h |
htop | Painel ao vivo de processos, CPU e memória (instale com sudo apt install htop; q sai) | htop |
journalctl | Lê os registros (logs) do sistema; -p err -b mostra só erros desde o último boot | journalctl -p err -b |
ip -brief address | Mostra as interfaces de rede e seus endereços | ip -brief address |
sudo reboot / sudo poweroff | Reinicia ou desliga o servidor com segurança | sudo reboot |
Três hábitos evitam a maioria dos sustos: ler a mensagem de erro inteira antes de repetir o comando; nunca rodar com sudo um comando que você não entende, principalmente se veio de um fórum; e, antes de editar um arquivo de configuração, fazer uma cópia (sudo cp arquivo arquivo.bak). Para interromper um comando que travou, use Ctrl+C.
Copiar arquivos com scp e sftp
Para mover arquivos em volume, o caminho certo é um compartilhamento de rede, tratado em Compartilhar arquivos na rede de casa com SMB e Samba. Mas para copiar um arquivo de configuração, um script ou um backup pontual, o próprio SSH resolve, sem instalar nada, com dois utilitários que vêm junto com ele:
scp compose.yaml [email protected]:~/servicos/ # do seu PC para o servidor
scp [email protected]:~/backup.tar.gz . # do servidor para a pasta atual
scp -r fotos/ [email protected]:/mnt/dados/fotos/ # pasta inteira (-r)O scp segue a lógica "origem, destino", e o lado remoto é escrito como usuario@servidor:caminho. Já o sftp abre uma sessão interativa, parecida com um FTP, em que você navega com ls e cd e transfere com get e put. Programas gráficos como o WinSCP (Windows) e o FileZilla (todos os sistemas) usam o SFTP por baixo e mostram as duas máquinas lado a lado, o que é confortável para quem prefere arrastar e soltar. Em todos os casos, a mesma chave que abre o SSH abre a cópia de arquivos.
Erros comuns
Glossário deste guia
- Shell
- O programa que recebe comandos digitados e os executa. O SSH leva o shell do servidor até a sua tela.
- Cliente e servidor SSH
- O cliente (
ssh) roda no seu computador; o servidor (sshd) roda na máquina administrada, escutando na porta 22. - Fingerprint
- Resumo da identidade de um servidor SSH. Serve para você reconhecer que está falando com a máquina certa.
- Par de chaves
- Chave privada (fica com você) e chave pública (vai para o servidor). Substituem a senha com mais segurança.
- Passphrase
- Senha que protege o arquivo da chave privada no seu computador. Diferente da senha do usuário no servidor.
- authorized_keys
- Arquivo no servidor, dentro de
~/.ssh, que lista as chaves públicas autorizadas a entrar com aquele usuário. - scp / sftp
- Utilitários que copiam arquivos através da conexão SSH, usando a mesma autenticação.
Checklist: acesso seguro?
Marque o que já fez. O progresso fica salvo apenas neste navegador.
Fontes e leituras complementares
- Canonical, Ubuntu Server documentation: seção sobre OpenSSH, com instalação, configuração do sshd e uso de chaves.
- Microsoft, OpenSSH no Windows: documentação do cliente OpenSSH embutido no Windows 10 e 11.
- Arch Linux, OpenSSH: referência detalhada de configuração do cliente e do servidor, incluindo permissões de arquivos.
Sobre este conteúdo. Guia escrito e revisado pela equipe editorial do ServersDesktop com base em documentação oficial dos projetos citados e na experiência de uso doméstico. Não há patrocínio, links de afiliado nem indicação de produto específico. Encontrou um erro? Avise pelo contato; correções são registradas na data de atualização.
Leia também a política editorial.
