O que é SSH e como funciona?

SSH é um protocolo de rede seguro para acessar computadores remotos em uma rede.

Os computadores conversam entre si através de redes. Assim, os pesquisadores de rede definiram um conjunto de regras para comunicação com outras máquinas e começaram a desenvolver protocolos como o Telnet; usando isso, um usuário pode assumir o controle de outro computador.

Mas eles não são seguros, ou seja, qualquer pessoa no meio da rede pode interceptar e ler os dados que estão sendo transferidos. Em meados dos anos 90, um protocolo mais seguro chamado ssh foi introduzido como um sucessor confiável do protocolo telnet.

Se você é um desenvolvedor de software ou administrador de sistema que trabalha em um setor, pode ter usado o ssh pelo menos uma vez. Se não sabia, vamos aprender agora, pois é uma das habilidades essenciais que você deve conhecer.

O que é SSH?

SSH ou Secure Shell ou Secure Socket Shell é um protocolo de rede que nos ajuda a acessar e nos comunicar com segurança com máquinas remotas (principalmente servidores remotos).

Ele fornece criptografia forte e é amplamente utilizado por administradores e desenvolvedores de rede para gerenciar sistemas e aplicativos remotos, executar comandos, compartilhar arquivos, etc.

Necessidade de SSH

O SSH foi criado em 1995 para resolver problemas de segurança enfrentados por protocolos de acesso remoto não seguros, como rlogin, rsh, Telnet.

Agora vamos falar sobre Telnet, que significa Teletype Network desenvolvido em 1969. É uma ferramenta simples de linha de comando que roda em seu computador para acessar um servidor remoto (em qualquer lugar localizado no globo). E envie comandos para serem executados naquele servidor, como se você estivesse sentado diante do servidor remoto (mesmo a quilômetros de distância do servidor). O Telnet transmite e recebe mensagens em texto simples em uma rede.

  Como encontrar arquivos conflitantes no Google Drive

Os comandos que você executaria poderiam ser para executar programas, criar diretórios, criar/excluir/transferir arquivos, iniciar/parar serviços, etc.

O problema de conectar outra máquina em uma rede é que os dados transmitidos passarão por muitas redes. Nesse ínterim, alguns dos quais podem ser inseguros e os dados transmitidos podem ser interceptados, possivelmente modificados antes de atingirem a máquina de destino pretendida.

Antigamente, onde a segurança não era tão importante, toda a comunicação ocorria em texto simples. Portanto, os dados transmitidos pela Internet entre cliente e servidor podem ser facilmente interceptados. E pode ser lido porque as mensagens não são criptografadas.

Portanto, os protocolos de texto simples são extremamente inseguros e nunca devem ser usados ​​para transmissão de dados confidenciais, como senhas, segredos, etc. Portanto, o SSH está sendo considerado uma alternativa segura aos protocolos de rede de acesso remoto herdados.

Como funciona?

O SSH usa uma arquitetura cliente-servidor para comunicação segura na rede, conectando um cliente ssh ao servidor ssh. Por padrão, o servidor ssh escuta a porta TCP padrão 22 (você pode alterar isso para maior segurança).

Ele usa uma técnica de criptografia de chave pública para autenticar entre cliente e servidor. Além disso, o protocolo usa criptografia simétrica forte e algoritmos de hash para a troca de mensagens entre cliente e servidor para garantir a privacidade e a integridade dos dados.

  Como atualizar o firmware do Philips Hue

O Linux é o sistema operacional amplamente utilizado para servidores remotos devido à sua segurança e durabilidade. Muitos Servidores que utilizam sistema operacional Linux na internet rodam há anos sem muitas falhas ou mesmo sendo reiniciados.

A maioria das sessões SSH (período em que acessamos o servidor remoto) terá apenas as duas operações a seguir:

  • Autenticação
  • Execução de Comando

Os servidores SSH podem autenticar clientes usando vários métodos.

E as duas formas populares são:

A autenticação baseada em senha é o método padrão usado para autenticação para OpenSSHGenericName clientes instalados. É a autenticação ssh mais básica, mas não a mais segura.

Mesmo que as senhas sejam enviadas para o servidor com segurança, os ataques modernos de força bruta podem ignorar a autenticação.

A autenticação baseada em chave melhora ainda mais a segurança do sistema ao gerar pares de chaves SSH, o que prova ser uma alternativa confiável e segura.

Após o servidor autenticar o cliente com sucesso, uma conexão segura é estabelecida entre eles.

Acessando servidor remoto usando SSH

Se você for um usuário Mac/Linux, pode usar diretamente o terminal para digitar e executar comandos ssh, pois o OpenSSH já vem instalado por padrão.

Se você for um usuário do Windows, precisará instalar um cliente de emulador de terminal de terceiros para executar comandos ssh. PuTTY é o cliente ssh mais popular para o sistema operacional Windows.

Para se conectar a um servidor remoto usando SSH, você precisa saber pelo menos duas coisas.

A sintaxe do comando ssh básico é:

$ ssh <user-name> @ <host> -p <port-no>

O nome de usuário é o nome de usuário da máquina remota que estamos tentando conectar (e não o usuário em sua máquina local), e o host é um endereço IP ou um nome de domínio.

  Como digitalizar documentos e adicionar fotos instantaneamente ao Mac usando a câmera Continuity

Vejamos um exemplo de conexão a um servidor remoto usando o OverTheWire local na rede Internet. É um site gratuito de desafios de jogos de guerra.

Agora, vamos nos conectar ao bandido desafio usando ssh. É um dos desafios disponíveis no site que ensina como fazer login usando SSH.

Credenciais:

nome de usuário e senha: bandit0
host e porta: bandit.labs.overthewire.org, 2220

Quando você digita o seguinte comando e pressiona enter:

$ ssh [email protected] -p 2220

Ele solicitará a senha para fins de autenticação. Agora digite a senha e aperte enter:

Se a senha digitada estiver correta, você está logado com sucesso no servidor remoto e seu terminal ficará parecido com a imagem acima.

Agora você pode usar o terminal da máquina remota para digitar e executar seus comandos e realizar suas operações necessárias.

Quando você quiser encerrar a sessão ssh, digite o comando exit:

$ exit

Você receberá uma mensagem, “Connection closed” quando fizer logout com sucesso da sessão ssh.

Conclusão

A principal razão por trás da popularidade do SSH é que toda a comunicação entre o servidor e o cliente é criptografada.

A maioria das pessoas assume que usar o ssh é complexo e obter conhecimento sobre como ele funciona não é facilmente compreensível, mas é mais simples do que você pensa. Agora você tem uma compreensão básica do SSH, como ele funciona, os aspectos de segurança por trás dele e por que ele desempenha um papel vital na comunicação.

Em seguida, explore alguns dos recursos para se tornar Sysadmin.