O que é SSH e porque ele deve ser usado

ssh

Uma das ferramentas mais importantes de uma hospedagem é aquela utilizada para enviar e manipular os arquivos no servidor. Seja um cliente iniciante ou avançado, todos precisam subir seus códigos, excluir e administrar arquivos e imagens. Uma das formas mais seguras de realizar este processo é através do protocolo SSH.

A maioria dos clientes de hospedagem utiliza o protocolo FTP para manipular seus arquivos. Programas como o Filezilla tornam o acesso descomplicado e fácil de fazer. Além disso, as melhores hospedagens oferecem um Gerenciador de arquivos embutidos em seu painel, o que facilita ainda mais a vida do usuário. O SSH é uma alternativa a esses protocolos, e hoje vamos aprender o que é essa tecnologia e porque ela pode ser importante para a sua hospedagem.

O que é SSH?

A sigla SSH significa Secure Shell (Cápsula Segura, em português), e trata-se de um protocolo de comunicação segura utilizado em uma arquitetura de comunicação Cliente-Servidor. Ele faz a criptografia dos dados, e se utiliza de chaves públicas e privadas para autenticar o acesso de ambos os lados.

O protocolo SSH pode ser utilizado para fazer login em um computador ou servidor remoto e realizar comandos. Quem tem uma hospedagem em um Servidor VPS, por exemplo, pode utilizar a conexão SSH para configurar o servidor de forma remota.

No caso das hospedagens de sites, o SSH é utilizado principalmente para realizar transferência de arquivos de maneira segura, ao invés do FTP.

O que diferencia esse protocolo dos demais é a necessidade de autenticação por parte do servidor e do cliente, o que garante que só essas máquinas poderão conhecer os dados. A criptografia das informações garante que elas não poderão ser acessadas em casos de vazamento ou se forem interceptadas por pessoas ou softwares maliciosos.

O SSH roda a partir de um terminal conhecido como Shell. Este terminal interpreta e executa os comandos SSH, além de exibir as respostas das operações realizadas no Servidor. Essa característica faz com que o SSH seja utilizado principalmente por usuários avançados, que tem mais experiência com utilização de linhas de comando.

Por que o SSH é importante?

A utilização do SSH traz diversas vantagens para os clientes de hospedagem, a maioria delas voltadas à criptografia dos dados. O encapsulamento das informações é uma das principais características do protocolo. Vamos conferir as principais vantagens do SSH.

Segurança

A principal vantagem do SSH é sem dúvida a segurança, tanto para os dados transmitidos quanto para as alterações realizadas no servidor. A criptografia dos dados e a dupla autenticação exigida garante máxima proteção em caso de interceptação de dados ou invasão ao Servidor.

Imagine que você tem um e-commerce, por exemplo, e irá transferir arquivos com dados sensíveis de clientes da sua loja. Caso acha um software mal-intencionado que intercepte os dados, ele não terá acesso às informações caso você esteja utilizando SSH. Isso ocorre porque o acesso só é permitido com a legítima chave de autenticação.

Se você possui um servidor de hospedagem, a conexão SSH é um reforço hora de liberar o acesso à máquina. Isso dificulta que invasores acessem o servidor e façam manipulações de dados ou alterações de configuração.

É claro que nada é 100% seguro. Alguns arquivos vazados pela WikiLeaks sugeriram que a Agência de Segurança Nacional Americana já conseguiu descriptografar dados encapsulados por SSH. Entretanto, ainda é possível afirmar que ele é um protocolo de comunicação extremamente seguro de maneira geral (o mais seguro entre os atualmente existentes).

Velocidade e Agilidade

Quem conhece bem os comandos e está familiarizado com o SSH consegue fazer alterações na hospedagem muito mais rápido do que os usuários que utilizam os Painéis de Controle, por exemplo.

Quem tem um servidor dedicado ou VPS também encontra no SSH uma forma segura de se conectar com seu serviço e fazer alterações e atualizações necessárias. O acesso remoto utilizando o protocolo permite ao cliente manipular o servidor assim que conferir o erro, basta ter acesso à internet e o terminal SSH instalado em seu computador.

Com o SSH é possível realizar também instalações de softwares, como Bancos de Dados, PHP e gerenciadores de conteúdo. Através do acesso remoto, o cliente pode administrar seu servidor de forma segura como se estivesse trabalhando diretamente na máquina do servidor.

Essas possibilidades fornecem uma enorme agilidade principalmente para quem administra diversos sites ou revende hospedagens.

Compressão

Uma vantagem adicional do SSH é que ele faz a compressão dos dados antes de realizar o envio. Isso é muito útil para conexões lentas, com menos largura de banda. Além de agilizar o processo de transmissão dos dados, a compactação de dados gera economia de banda da internet.

A compactação é importante principalmente quando vamos transferir um arquivo muito grande. Essa diferença chega a ser bastante perceptível nestes casos, o que torna o SSH um importante aliado na transferência de grandes arquivos.

Serviços de Deploy

É comum que os desenvolvedores utilizem Serviços de Deploy para realizar o controle de versões das suas aplicações. Uma das grandes vantagens do protocolo SSH é a compatibilidade com os principais sistemas de deploy.

Como programadores são usuários avançados e com conhecimento em linha de comando, é natural que os Serviços de Deploy implementem o SSH. É o caso do GitHub, por exemplo, umas das principais ferramentas de versionamento utilizadas.

Usuários do GitHub podem realizar commit de seus arquivos através do seu computador, enviado os dados por SSH ao repositório da sua aplicação. Com a correta configuração no GitHub, os dados podem ser enviados diretamente para o servidor de hospedagem utilizando o protocolo SSH, atualizando imediatamente de forma segura a versão do site do cliente.

Compatibilidade

O protocolo SSH é compatível com os principais sistemas operacionais utilizados em servidores de hospedagem. E é de fácil instalação e configuração na máquina do cliente. Além disso, existe uma vasta lista de programas clientes que possibilitam a conexão SSH com o servidor. A maioria são softwares gratuitos e possuem diversos recursos. Os principais programas são:

Formas de criptografias do SSH

O encapsulamento dos dados através da criptografia torna o SSH uma forma segura para transferir dados e manipular o servidor remotamente. É interessante saber que o SSH utiliza 3 mecanismos diferentes para proteger a comunicação. Vamos conhecer um pouco de cada um.

Criptografia Simétrica

Este tipo de criptografia faz uso de uma chave secreta para criptografar e descriptografar as mensagens enviadas na comunicação cliente-servidor.

Funciona assim: o cliente e o servidor estabelecem uma conexão, determinando qual cifra será usada para criptografar os dados. Em seguida, um algoritmo calcula a chave (token) que será usada naquela sessão SSH tanto pelo cliente quanto pelo servidor.

Dessa forma, na criptografia simétrica a chave não é enviada juntamente com a mensagem, o que torna a comunicação mais segura. Mas, como os dois lados (servidor e cliente) conhecem a chave e é utilizada a mesma tanto para criptografar quanto para descriptografar os dados, é aconselhável conferir o ambiente onde a solução será implementada a fim de evitar falhas de segurança.

É um tipo de criptografia mais simples e mais veloz, ideal para ambientes que não são muito suscetíveis a ataques ou em que os dados não são tão sensíveis.

Criptografia Assimétrica

A Criptografia Assimétrica é um método que utiliza duas chaves de segurança, uma pública e outra privada. Dessa forma, uma das chaves tem a função de criptografar os dados e a outra de descriptografar, mas uma não pode ser gerada através do conhecimento da outra.

Neste tipo de criptografia, a chave pública, como o próprio nome diz, pode ser conhecida por todos os lados da comunicação. Entretanto, a chave privada só pode ser conhecida pelo seu local de origem. Vamos exemplificar para entender melhor, supondo que o Cliente estabeleça uma conexão SSH com o servidor web e queira enviar uma mensagem:

  1. O Cliente recebe a chave-pública gerada pelo servidor de hospedagem e realiza a criptografia da sua mensagem utilizando a chave-pública do servidor.
  2. O Cliente envia a mensagem e o servidor Hospedagem utiliza sua chave privada para realizar a decodificação.

Como vimos no exemplo, o servidor nunca expõe sua chave privada, o que torna a comunicação muito mais segura. Também é possível utilizar esse método para confirmar autenticidade de uma mensagem. Vamos voltar ao nosso exemplo: Imagine que o Cliente queira ter certeza que a mensagem foi enviada pelo Servidor, é possível fazer isso da seguinte forma:

  1. O servidor de hospedagem cria uma mensagem, mas dessa vez utiliza a sua chave-privada para criptografá-la. Em seguida, os dados são enviados ao Cliente;
  2. Ao receber a mensagem, o Cliente pode ter certeza que ela foi enviada pelo Servidor Hospedagem, sendo capaz de atestar a autenticidade da comunicação.

Esse é um tipo de criptografia muito mais segura, ideal para informações sensíveis. Por ser mais complexa, exige um pouco mais de recursos computacionais.

Hashing

O método Hashing é utilizado pelo SSH para garantir a validade das mensagens informadas. No Hashing, ninguém pode conhecer a chave: é gerado um valor único para cada uma das entradas e dentro dela não existe uma chave para que seja descriptografado.

Isso é útil para que o SSH garanta que a mensagem é autêntica. A mensagem criptograda em Hash não pode ser conhecida, mas pode ser comparada com outro Hash através de códigos de autenticação.

Conclusão

A utilização do SSH é ideal para que quer garantir a segurança ao subir arquivos para sua hospedagem ou manipular o servidor remotamente. Além disso, o SSH confere agilidade e velocidade especialmente para usuários intermediários ou avançados ao trabalharem nas suas aplicações.

Se você está preocupado com a segurança dos seus arquivos e quer ter uma forma confiável de configurar seu servidor, o SSH pode ser uma ferramenta muito útil para otimizar seus resultados e lhe garantir uma melhor hospedagem.