SSH é a sigla para Secure Shell, sendo um dos protocolos específicos de segurança de troca de arquivos entre cliente e servidor de internet, usando criptografia.
Saber o que é SSH e como funciona ajuda a entender um pouco mais a respeito do funcionamento dos sites, da produção de conteúdo e das trocas de dados. Ou seja, da era digital como um todo.
Neste caso, estamos falando sobre Protocolos de Internet, ou Protocolos de Rede. Esses protocolos consistem basicamente em normas que permitem a qualquer máquina conectada à internet se comunicar com outra também conectada na web.
Então, se hoje você pode acessar um site ou blog, efetuar compras em uma loja virtual, enviar e receber emails e fazer postagens nas redes sociais, é tudo graças a esses protocolos. Você certamente já se deparou com vários deles na hora de navegar na web.
Nessa postagem, você entenderá não só o que é o protocolo SSH, mas também para que ele serve e como acessá-lo. Continue lendo e descubra!
O que é o protocolo SSH?
SSH é a sigla para o termo Secure Shell, que em tradução livre significa “Concha de Segurança”, mas pode ser adaptado para o termo “Bloqueio de Segurança”. O SSH surgiu em 1995 e foi desenvolvido pelo programador Tatu Ylonen, com o objetivo de solucionar um incidente envolvendo hackers em uma universidade finlandesa.
Basicamente, o SSH é um protocolo de rede que permite acessar e gerenciar dispositivos remotamente com segurança por meio de criptografia. Por essa razão, quando o assunto é segurança em seu projeto na internet, esse protocolo ganha bastante relevância.
De forma geral, esse protocolo cria um método seguro e impede que terceiros exponham ou corrompam esses arquivos e seus códigos. É aí que as criptografias entram em ação, permitindo apenas que dois pontos acessem as informações: servidor e computador que enviou os dados para esse local remoto.
Saiba porque esse protocolo tem o nome de Shell
Shell, em português, significa concha, casca, um elemento de proteção. Imagine, por exemplo, uma tartaruga sem a sua carapaça. Pois então, no universo da programação e das linguagens de computador, o SSH também serve para proteger.
Ele atua como um interceptador de comandos que realiza a ligação entre o usuário e o sistema operacional. Essa concha, ou Shell, executa os comandos inseridos pelo usuário por meio do teclado, por exemplo. A partir daí ele passa a obter respostas.
📖 Leia mais: Por que ter um site? Entenda os motivos para sua empresa ter uma casa própria
O que o SSH faz?
O SSH tem como principal função garantir a segurança na comunicação entre dois pontos, seja entre um cliente e um servidor, ou entre duas máquinas conectadas à rede. Por meio de criptografia avançada, o SSH protege dados sensíveis enquanto são transferidos pela internet, impedindo que terceiros interceptem ou alterem as informações.
Além de assegurar a troca de dados, o SSH oferece uma série de funcionalidades que o tornam uma ferramenta versátil para desenvolvedores e administradores de sistemas. Entre suas principais aplicações estão:
- Acesso remoto seguro: o SSH permite que você acesse remotamente servidores e dispositivos conectados à rede, realizando operações de manutenção, configuração e monitoramento de maneira protegida.
- Transferência de arquivos: com o SSH, é possível mover arquivos entre computadores de forma segura, utilizando ferramentas como o SCP (Secure Copy) e SFTP (SSH File Transfer Protocol).
- Gerenciamento de servidores: administradores de sistemas podem utilizar o SSH para gerenciar servidores de maneira eficiente e segura, garantindo que apenas usuários autorizados tenham acesso às funções críticas do sistema.
- Execução de comandos remotos: o SSH possibilita que usuários executem comandos diretamente em um servidor remoto, sem a necessidade de estar fisicamente presente, o que agiliza o processo de administração de sistemas.
Em resumo, o SSH atua como uma "ponte segura" entre o usuário e o servidor, garantindo que toda a comunicação seja criptografada e protegida contra ameaças externas.
Portanto, seja para acessar remotamente um servidor ou transferir arquivos de forma segura, o SSH desempenha um papel fundamental na segurança digital de qualquer projeto online.
Para que o SSH é usado?
Hoje em dia, o protocolo SSH é utilizado para gerenciar mais da metade dos servidores web no mundo, com presença em quase todos os computadores que operam com Unix ou Linux. Essa ferramenta faz parte do cotidiano de vários profissionais que atuam na área da programação e no desenvolvimento de sistemas de segurança.
Além disso, funciona por meio de uma chave pública que tem o objetivo de verificar e autenticar a legitimidade do servidor que o usuário pretende acessar (ou vice-versa). Então, o usuário realiza o acesso utilizando um login e senha e esse recurso consegue proteger a conexão.
Uma das grandes vantagens é que, por meio do SSH, o usuário tem condições de estabelecer um sistema de proteção para o seu site sem comprometer o desempenho dele. Com isso, o SSH torna a segurança do seu projeto mais eficiente, enquanto também atua na transferência de arquivos.
Outra aplicação importante é o uso do SSH para criar túneis que protegem o tráfego entre dispositivos e redes, útil para estabelecer conexões seguras em redes públicas ou em situações que exigem privacidade.
📖 Leia também: LGPD: o que diz a lei de proteção de dados e como ela pode impactar a sua estratégia de marketing e vendas
Qual porta o SSH usa?
O SSH opera, por padrão, na porta 22. Mas o que significa "porta" nesse contexto? Basicamente, uma porta é um canal virtual utilizado para organizar o tráfego de dados na comunicação entre dispositivos em uma rede. Cada serviço ou aplicação que usa a internet se comunica por meio de portas específicas, identificadas por números, para garantir que os dados cheguem ao destino correto.
No caso do SSH, a porta 22 dedica-se a conexões seguras entre o cliente e o servidor, permitindo a transmissão de dados criptografados. Ao acessar um servidor remoto via SSH, o tráfego de informações passa por essa porta, garantindo a integridade e confidencialidade das comunicações.
No entanto, por razões de segurança, muitos administradores de sistemas optam por alterar a porta padrão do SSH para outro número. Isso ajuda a evitar tentativas de ataques automatizados, conhecidos como brute force attacks, que costumam focar em portas padrão como a 22.
Mudar a porta de acesso é uma prática recomendada para aumentar a segurança de um servidor, pois dificulta o reconhecimento automático da porta SSH por potenciais invasores.
Quais são as criptografias usadas pelo SSH?
Uma das principais características do protocolo SSH é contar com a tecnologia de criptografia. É por meio dela que o SSH transmite as informações entre o usuário e o servidor de hospedagem com o máximo de segurança. Sendo assim, o protocolo SSH utiliza três tecnologias de criptografia, as quais veremos mais abaixo.
Criptografia Simétrica
Também chamada de Chave Compartilhada ou Compartilhamento Secreto, esse tipo de criptografia usa uma chave secreta. Por meio dela, é possível transferir, codificar e decodificar uma mensagem do cliente e do servidor.
Usa-se chaves simétricas para codificar uma comunicação criptografada. Sendo assim, tanto o cliente quanto o servidor utilizam uma chave secreta por meio de um método que não pode ser mostrado a terceiros.
Criar uma chave simétrica envolve o uso de uma chave de mudança de um algoritmo. O que altera nesse algoritmo é o fato que a chave nunca é transmitida entre o cliente e o servidor da hospedagem. Desse modo, o compartilhamento dos dados e a sua manipulação ocorre de modo independente, evitando que o algoritmo seja reconhecido por outros usuários.
Além disso, nesse tipo de criptografia, cada sessão SSH possui a sua própria chave (token). Isso demanda uma autenticação antecipada do cliente, que deve usar uma senha de login para acessar uma máquina externa ou servidor.
Criptografia Assimétrica
Ela utiliza duas chaves secretas separadas. Essas chaves servem tanto para codificar quanto para decodificar o processo de comunicação entre o cliente e o servidor. Ambas são conhecidas como chave-pública e chave-privada. Unidas, elas formam o par pública-privada.
A chave-pública, conforme o próprio nome aponta, é aberta. Por meio de uma complicada relação entre os dois tipos de chaves, a mensagem é codificada pela chave-pública da máquina, que pode ser apenas decodificada pela chave-privada da mesma máquina.
Isso quer dizer que a chave-pública não decodifica suas próprias mensagens e nem algo já criptografado pela chave-privada. Portanto, o usuário que pretende descriptografar dados públicos deve, primeiro, ter a chave-privada correspondente.
Criptografia Hashing
Esse tipo de criptografia é também conhecida como One-Way Hashing, que em português pode ser chamada de “Criptografia de uma via só”. O processo da Criptografia Hashing abrange codificações de dados e mensagens, porém, nunca a decodificação dessas mesmas informações.
Sendo assim, o Hashing utiliza um único valor para cada entrada e que não pode ser explorado. Isso dificulta ao máximo a decodificação realizada por terceiros. Na criptografia Hashing, a autenticação das mensagens é realizada por meio de códigos baseados em Hash. Apenas os usuários interessados estão aptos a efetuar o acesso. Esse procedimento promove a segurança desse tipo de criptografia.
📖 Leia mais: Como escolher a melhor hospedagem para o site de sua empresa?
Qual é a diferença entre o SSH e outros protocolos para tunelamento?
O SSH é um dos protocolos mais utilizados para tunelamento seguro, mas ele não é o único. A principal diferença entre o SSH e outros protocolos de tunelamento, como VPNs (Virtual Private Networks) e SSL/TLS (Secure Sockets Layer/Transport Layer Security), está nos seus casos de uso e no nível de segurança oferecido.
Confira algumas das diferenças:
SSH X VPN
A principal diferença entre o SSH e uma VPN é que o SSH é geralmente utilizado para acesso remoto seguro e tunelamento de um número limitado de portas. Isso significa que ele protege a comunicação entre um cliente e um servidor específico, como o controle de um servidor remoto ou a transferência de arquivos.
Em contrapartida, uma VPN cria um túnel criptografado para toda a rede do usuário, permitindo que todos os dados trafegados pela internet sejam criptografados, como se o usuário estivesse fisicamente conectado à rede privada.
Por exemplo, ao usar SSH, você pode se conectar a um servidor específico e executar comandos remotamente, enquanto uma VPN permite que você acesse toda uma rede corporativa, tendo acesso a múltiplos recursos, como se estivesse na rede local.
SSH X SSL/TLS
O SSL/TLS é usado principalmente para proteger transações via web (HTTPS), como em compras online ou acesso a serviços bancários, enquanto o SSH é mais comumente usado para gerenciamento de servidores e tunelamento de aplicações específicas.
O SSH usa criptografia e autenticação semelhantes às do SSL/TLS, mas seu foco é no gerenciamento remoto e transferência de arquivos, enquanto o SSL/TLS é aplicado às páginas da web para garantir a segurança das comunicações.
SSH X PPTP/L2TP (Protocolos de Tunelamento para VPN)
O SSH é mais simples e específico para acesso seguro a sistemas e para tunelamento de portas individuais. Já protocolos como PPTP e L2TP, que também são usados em VPNs, criam um túnel criptografado completo entre o dispositivo do usuário e a rede, permitindo que todo o tráfego passe por esse túnel.
Embora esses protocolos possam ser rápidos, a segurança oferecida pelo SSH é geralmente superior devido à sua forte criptografia e métodos de autenticação robustos.
Em resumo, a principal diferença do SSH para outros protocolos de tunelamento está no seu foco. Ele é mais utilizado para gerenciamento de servidores e tunelamento de portas individuais, enquanto protocolos como VPNs abrangem o tráfego completo da rede e o SSL/TLS protege comunicações específicas via web.
Portanto, a escolha entre esses protocolos depende das necessidades específicas de segurança e do tipo de conexão a ser protegida.
Há algum risco de segurança associado ao SSH?
Embora o SSH seja considerado um dos protocolos mais seguros para transferência de dados e acesso remoto, ele não está totalmente livre de riscos. Alguns desses riscos estão relacionados à má configuração, vulnerabilidades de sistemas ou práticas de segurança negligentes.
Abaixo listamos alguns dos principais riscos de segurança associados ao SSH e como evitá-los:
1. Ataques de força bruta
O SSH, por padrão, utiliza autenticação baseada em senhas. Se uma senha fraca for usada, o sistema pode ser alvo de ataques de força bruta, nos quais um invasor tenta várias combinações até encontrar a correta. Para mitigar este risco, recomenda-se:
- Usar senhas fortes e complexas.
- Configurar bloqueio automático de IPs após várias tentativas de login falhadas.
- Implementar autenticação por chave pública, que é muito mais segura do que senhas.
2. Chaves privadas comprometidas
Se um invasor obtiver acesso à chave privada de um usuário, ele pode acessar o servidor sem precisar de uma senha. Para proteger as chaves privadas:
- Armazene-as em locais seguros e utilize senhas para proteger a chave.
- Use autenticação multifator (MFA) para adicionar uma camada extra de segurança.
3. Má configuração do SSH
Configurações inadequadas podem expor o sistema a ataques. Por exemplo, manter o acesso root habilitado pelo SSH é um risco considerável, pois o root tem acesso completo ao sistema. Para reduzir esse risco:
- Desabilite o acesso root via SSH.
- Limite o acesso SSH a IPs específicos e desabilite versões antigas e menos seguras do protocolo (como o SSHv1).
4. Portas SSH expostas
Como comentamos anteriormente, o uso da porta padrão do SSH (22) pode ser um alvo fácil para atacantes que escaneiam redes em busca de portas abertas para explorar. Alterar a porta padrão pode ajudar a minimizar ataques automatizados, embora não elimine totalmente o risco.
5. Ameaças internas
Funcionários ou colaboradores que possuem acesso ao SSH podem, intencionalmente ou não, comprometer o sistema. Para mitigar esse risco, é essencial:
- Usar controle de acesso rigoroso e monitorar atividades.
- Revogar o acesso de ex-funcionários ou pessoas que não necessitam mais de permissões SSH.
6. Ataques "Man-in-the-Middle" (MitM)
Se o cliente não verificar corretamente a identidade do servidor, há o risco de um ataque MitM, onde o invasor intercepta e manipula a comunicação. Para evitar isso, é fundamental:
- Verificar a impressão digital do servidor durante a primeira conexão.
- Utilizar ferramentas de detecção de intrusões e monitorar logs de conexões.
Embora o SSH ofereça uma camada robusta de segurança, ele requer boas práticas de configuração e uso para evitar vulnerabilidades.
Nesse sentido, implementar autenticação baseada em chaves, manter o software atualizado e monitorar o acesso regularmente são formas eficazes de mitigar os riscos associados ao uso do protocolo.
Conheça as principais ferramentas SSH
Os desenvolvedores podem contar com ferramentas SSH que servem para facilitar o trabalho. Vale conhecer alguns deles a seguir.
SmarTTY
Esse arquivo apresenta várias funcionalidades. As principais são transferir arquivos e diretórios, abrir mais de uma aba e editar arquivos no próprio servidor.
PuTTy
Ele é uma ferramenta SSH destinada para Windows, Unix e Linux. Além de ser um software open source, ele estabelece um túnel codificado entre os servidores.
Ele também permite acessar o servidor de forma remota, viabilizando a personificação dele, permitindo que o usuário efetue alterações e instalações conforme considere necessário.
📖 Leia mais: Como usar o PuTTy SSH e se conectar com sua hospedagem ou VPS
OpenSSH
Atua evitando espionagem, sequestro de dados e outros tipos de danos causados por hackers. Essa ferramenta disponibiliza vários recursos de filtragem e alternativas de autenticação.
Como acessar o protocolo SSH?
Acessar o protocolo SSH é um processo relativamente simples, que envolve a utilização de um cliente SSH para estabelecer uma conexão segura com um servidor remoto. Preparamos a seguir um passo a passo para acessar o SSH:
1. Escolha de um cliente SSH
O primeiro passo para acessar o SSH é utilizar um cliente ou ferramenta SSH, como as que comentamos no tópico anterior. Lembre-se que existem várias opções disponíveis, dependendo do sistema operacional que você utiliza.
2. Obtenção dos dados de conexão
Para acessar um servidor via SSH, você precisará dos seguintes dados:
- Endereço IP ou domínio do servidor que deseja acessar.
- Nome de usuário no servidor remoto.
- Senha ou chave SSH privada para autenticação.
3. Conectando ao servidor via linha de comando
Se você estiver em um ambiente de terminal (Linux, macOS ou Windows com OpenSSH), basta usar o seguinte comando: ssh usuario@servidor
Onde:
- Usuário é o nome de usuário no servidor remoto.
- Servidor é o endereço IP ou domínio do servidor ao qual você está se conectando.
Por exemplo, para conectar como "admin" em um servidor com IP "192.168.1.100", você usaria: ssh admin@192.168.1.100
4. Autenticação
Após executar o comando, o terminal solicitará sua senha ou, se configurado, fará a autenticação utilizando a chave SSH privada.
Se for a sua primeira conexão com o servidor, você verá uma mensagem perguntando se deseja continuar com a conexão. Nesse caso, basta digitar "yes" para prosseguir.
5. Usando uma chave SSH
Ao invés de usar uma senha, você pode utilizar um par de chaves SSH (pública e privada) para autenticação. Essa forma mais segura de acessar o servidor envolve criar uma chave pública, que você armazena no servidor, e uma chave privada, que permanece no seu computador.
Para conectar usando uma chave privada, o comando seria algo assim: ssh -i /caminho/para/sua/chave_privada usuario@servidor
6. Acessando via PuTTY (Windows)
Se você usa o PuTTY no Windows, siga estes passos:
- Abra o PuTTY e, no campo Host Name (or IP address), insira o endereço IP ou domínio do servidor.
- Selecione a porta correta (geralmente, a porta padrão é 22).
- Clique em “Open” para iniciar a conexão.
- Quando o terminal solicitar, insira o nome de usuário e senha.
7. Mantendo a conexão segura
Após acessar o servidor via SSH, certifique-se de seguir boas práticas de segurança:
- Não compartilhe suas credenciais de acesso.
- Use chaves SSH em vez de senhas sempre que possível.
- Configure autenticação multifator (MFA) se disponível.
O SSH oferece uma maneira eficaz e segura de acessar servidores remotamente, permitindo executar comandos, fazer alterações no sistema e gerenciar arquivos com facilidade.
Segurança é tudo na internet
A segurança digital é um fator essencial, seja na gestão de uma loja online, no setor financeiro de uma empresa ou de um site com vários acessos.
Nesse contexto, ao utilizar o SSH, o usuário tem benefícios adquiridos por meio da criptografia. Ela assegura o acesso remoto a computadores e servidores de qualquer lugar sem interferir na proteção de dados ou prejudicar o desempenho.Portanto, se você é um profissional da área da programação ou apenas possui um projeto na internet, vale a pena pesquisar mais informações sobre o protocolo SSH e as suas funcionalidades.
Conheça o RD Station Marketing, a ferramenta de Automação de Marketing que simplifica tarefas e aumenta sua performance.