coldwa.st
Todos os guiasProgramaçãoWebDadosFerramentasBases de dadosHaskellConceitosCabal e buildsToolchainCompiladorDesempenhoEditor e HLS

Programação · Servidores · segurança

O que é o SSH?

Por ColdwastAtualizado a 22 de junho de 20268 min de leitura#ssh#servers#security
Linhas de código-fonte e uma porta de rede mostradas num ecrã escuro
O SSH é a forma habitual de os programadores abrirem uma sessão segura e encriptada numa máquina remota e trabalharem nela como se estivessem sentados à sua frente.

No momento em que aluga um VPS ou implementa num servidor remoto, depara-se com a mesma questão: como entra e corre comandos numa máquina que vive num centro de dados? A resposta é quase sempre SSH. Este guia explica o que é o SSH, como mantém a sua sessão segura e o punhado de comandos de que realmente precisa.

A definição curta

SSH – Secure Shell – é um protocolo para entrar num computador remoto e correr comandos através de uma ligação encriptada. Dá-lhe um terminal numa máquina noutro lugar, como se estivesse mesmo à sua frente, e cifra tudo o que passa entre si e o servidor. Essa encriptação é o ponto central: substituiu ferramentas mais antigas como o Telnet, que enviava palavras-passe e comandos em texto simples, ao alcance de qualquer um na rede.

Como funciona o SSH

Quando se liga, o seu cliente SSH e o servidor fazem um handshake rápido. Acordam as definições de encriptação e criam uma chave secreta partilhada, para que o resto da sessão seja privado. O servidor também prova a sua identidade com a própria chave, e é por isso que o cliente o avisa na primeira vez que vê um servidor novo. Depois disso, autentica-se – prova quem é – e obtém uma linha de comandos na máquina remota. Cada tecla premida e cada resposta a partir daí ficam encriptadas.

Um armário de servidores cheio de cabos de rede e patch cords
O SSH é a forma de chegar a servidores como estes. Liga-se a partir do seu portátil e controla a máquina remota através de um canal encriptado.

Palavras-passe vs chaves SSH

Pode entrar de duas formas. Uma palavra-passe é simples, mas mais fraca: pode ser adivinhada ou descoberta por força bruta, e os bots tentam isto em servidores públicos o dia todo. As chaves SSH são a melhor opção. Gera um par de ficheiros: uma chave privada que fica no seu computador e uma chave pública que copia para o servidor. O servidor só o deixa entrar se a sua chave privada corresponder, e a chave privada nunca sai da sua máquina. As chaves são mais seguras e mais práticas, já que dispensa escrever uma palavra-passe de cada vez.

Os comandos que realmente usa

  • Ligar: ssh user@server-address abre uma sessão na máquina remota.
  • Criar um par de chaves: ssh-keygen gera as suas chaves privada e pública.
  • Copiar a chave para um servidor: ssh-copy-id user@server-address configura o início de sessão por chave.
  • Copiar ficheiros: scp file user@server:/path move ficheiros pelo mesmo canal seguro.

Estes quatro cobrem a maior parte do trabalho do dia a dia. Liga-se, gere os seus contentores ou código e move ficheiros de um lado para o outro, tudo encriptado.

Onde se cruza com o SSH

O SSH está em todo o lado na programação. Usa-o para gerir um VPS ou servidor cloud, para enviar e obter código com o Git por SSH, para implementar apps e para criar um túnel seguro numa ligação. Se uma tarefa envolve uma máquina remota, o SSH é normalmente a forma de lá chegar. Aprendê-lo uma vez compensa em todos os servidores em que algum dia tocar.

Os compromissos honestos

O SSH é seguro, mas a segurança continua a depender de si. Deixar o início de sessão por palavra-passe ativo, ou expor a porta padrão com uma palavra-passe fraca, é a forma como os servidores são invadidos. A configuração segura é bem conhecida: use chaves SSH, desative o início de sessão por palavra-passe e mantenha a sua chave privada protegida. Os principiantes também sentem a linha de comandos como um obstáculo no início. Mas o básico aprende-se depressa, e a competência transfere-se para todos os servidores e plataformas cloud que vier a usar.

Perguntas frequentes

O que é o SSH em termos simples?

SSH, ou Secure Shell, é uma forma de entrar num computador noutro lugar e correr comandos nele através de uma ligação encriptada. Dá-lhe um terminal numa máquina remota como se estivesse à sua frente, cifrando tudo o que é enviado entre si e o servidor para que ninguém na rede o consiga ler.

Qual é a diferença entre uma palavra-passe SSH e uma chave SSH?

Uma palavra-passe é um segredo que escreve, e pode ser adivinhada ou descoberta por força bruta por bots. Uma chave SSH é um par de ficheiros: uma chave privada guardada na sua máquina e uma chave pública colocada no servidor. Só é deixado entrar se corresponderem, e a chave privada nunca sai do seu computador, o que torna as chaves mais seguras e mais práticas do que as palavras-passe.

Que porta usa o SSH?

O SSH usa por predefinição a porta TCP 22. Alguns administradores mudam-na para outra porta para reduzir as tentativas automáticas de início de sessão, mas isso é um pequeno obstáculo, não segurança a sério. As verdadeiras proteções são usar chaves SSH e desativar o início de sessão por palavra-passe, não esconder a porta.

O SSH é seguro?

Sim, o SSH é seguro quando bem configurado, porque encripta toda a sessão. A maioria das invasões vem de uma configuração fraca, não do próprio SSH – normalmente o início de sessão por palavra-passe deixado ativo com uma palavra-passe fácil de adivinhar. Usar chaves SSH, desativar o início de sessão por palavra-passe e proteger a sua chave privada tornam-no muito seguro.

Guia independente, mantido pela comunidade. coldwa.st é um site de recursos de programação; este artigo é um texto explicativo novo e original sobre o protocolo SSH. Os comandos apresentados são uso padrão do OpenSSH; consulte a documentação do seu próprio cliente e servidor para detalhes específicos.
Recomendado

Um servidor para praticar SSH

A melhor forma de aprender SSH é ter um servidor real onde entrar. Um VPS ou servidor cloud dá-lhe acesso root por SSH para implementar sites, APIs ou contentores. A Infomaniak – um fornecedor suíço respeitador da privacidade – oferece VPS e servidores cloud aos quais se liga e que gere inteiramente por SSH.

Ver Infomaniak Cloud →

Link de afiliado – ajuda a suportar estes guias gratuitos.

Explore outras explicações claras no nosso índice de guias.