O que é SSH e como usá-lo para acessar sua hospedagem

O que é SSH
Quando falamos de hospedagem de sites, inevitavelmente precisamos abordar alguns aspectos técnicos do serviço. E uma das principais atividades relacionadas à hospedagem de sites diz respeito à manipulação dos arquivos que compõem um site. A edição dos arquivos de um site pode ser feita em seu computador pessoal. No entanto, em algum momento eles precisarão ser enviados para o servidor de hospedagem, o que demandará uma maneira de acessá-lo.

Existem algumas formas distintas para acessar um servidor de hospedagem. Dentre elas, podemos destacar três: usando o gerenciador de arquivos da hospedagem, um programa de FTP ou através de um terminal, via SSH. Estas opções, nesta ordem, estão em nível de dificuldade crescente. Pessoas com pouca experiência no assunto vão se sentir confortáveis usando o gerenciador de arquivos da hospedagem. Já o programa de FTP é usado tanto por leigos quanto por profissionais. O acesso SSH é o modo mais desafiador, sendo utilizado principalmente por profissionais da área.

Se você quer conhecer melhor esta ferramenta poderosa que é o SSH, continue conosco até o final deste artigo. Ao longo do texto, veremos o que é SSH, por que usá-lo e como acessar sua hospedagem usando este método. Veremos também alguns exemplos do que é possível fazer com este recurso. Fique conosco e descubra!

O que é SSH

SSH é o acrônimo de Secure Shell, que traduzido literalmente seria algo como “cápsula segura”. O protocolo SSH permite se conectar a um servidor remoto pela internet, de maneira segura. A conexão exige autenticação dos dois lados (servidor e computador) e é criptografada. Assim, mesmo se alguém interceptar o pacote de dados que está sendo transmitido, não será possível visualizar o conteúdo da mensagem, pois apenas os computadores que estão conectados entre si possuem a chave para descriptografá-la.

O protocolo de comunicação SSH está presente em todos os servidores de hospedagem profissionais e é amplamente utilizado por empresas e profissionais da área. Nós veremos, a seguir, as vantagens que este protocolo oferece em termos de segurança e também quanto à agilidade na realização de diversas tarefas.

Por que você deve usar SSH

Apesar de existirem outros métodos de acesso ao servidor, o SSH possui algumas vantagens sobre os demais. Em algumas situações, sua utilização pode ser fundamental, como veremos a seguir.

Segurança

O primeiro motivo pelo qual você deve usar o SSH é a segurança. Como mencionamos acima, a comunicação entre os computadores é criptografada e dificilmente pode ser decifrada por terceiros. Veja abaixo um exemplo prático de um aspecto de segurança do SSH:

Existe uma técnica de invasão chamada man in the middle, que, em português, seria algo como “homem no meio”.  Neste tipo de ataque, um computador estranho intercepta a troca de dados entre o seu computador e o servidor, podendo alterar ou copiar o conteúdo da transmissão, sem que o remetente e o destinatário percebam. Esta técnica pode ser usada para fins ilícitos, como a interceptação de uma transação bancária através da internet. Em casos menos graves, isso pode ser usado por redes de internet para inserir propaganda em sites que não possuem criptografia SSL. O acesso através do protocolo SSH impede este tipo de invasão.

Deploy de aplicações

O protocolo SSH também é amplamente usado para realizar a conexão entre serviços de deploy. Projetos que envolvam controle de versão, através do uso do Git, por exemplo, podem se valer do SSH para fazer a comunicação entre o repositório e o servidor em produção. Neste cenário, para fazer a publicação de uma alteração em um site ou aplicação, o desenvolvedor faz um commit em seu computador e envia as alterações para o repositório (git push). Dependendo das configurações do repositório, as alterações podem ser enviadas automaticamente para o servidor de hospedagem, que disponibiliza o site ou aplicação na internet. Essa comunicação entre o repositório e o servidor, pode ser realizada com o protocolo SSH.

Agilidade da realização de tarefas

Outro aspecto muito útil do SSH é a agilidade na realização de tarefas. A agilidade, nesse caso, não tem origem no protocolo SSH em si, mas sim no fato de que esse tipo de acesso ocorre através de um terminal de comandos. Assim, o usuário que está acessando um servidor através do protocolo shell, pode executar milhares de comandos via teminal, como se estivesse executanto estas operações diretamente no servidor. Veremos alguns exemplos um pouco mais adiante.

Como acessar sua hospedagem usando SSH

Para utilizar o protocolo, você precisa de um cliente SSH, ou seja, um programa que faça este acesso. Em sistemas operacionais Linux ou Mac o terminal de comandos, que vem instalado por padrão, já possui um cliente SSH. Em computadores com o Windows, ele deve ser instalado pelo usuário.

Um dos clientes SSH mais famosos para Windows é o Putty. Mas outros também podem ser utilizados, como o Git Bash, que faz parte da instalação do sistema de controle de versão Git for Windows. Após instalar o Git for Windows, você poderá abrir o terminal e começar a usar o SSH.

A Microsoft está trabalhando em um cliente SSH nativo para computadores com o Windows 10. Por enquanto o recurso ainda está em beta, mas tudo indica que será implementado nativamente em breve. Veja mais informações aqui.

Habilite o SSH em sua hospedagem

É comum o acesso SSH estar desabilitado por padrão nas empresas de hospedagem. Por isso, antes de testar a conexão, você precisa descobrir se esse é o caso. Geralmente, a ativação do acesso SSH pode ser feita diretamente no painel de controle da hospedagem. Caso esta opção não esteja disponível, entre em contato com o suporte técnico de sua hospedagem e solicite a ativação.

Com o SSH habilitado, você pode realizar o acesso ao seu servidor de hospedagem usando um dos métodos abaixo.

Método 1: usando login e senha

Você pode se conectar ao servidor de hospedagem tendo em mãos o endereço do servidor, que pode ser o domíno ou o IP, e o login e a senha de acesso. Geralmente, as credenciais de acesso ao FTP são suficientes para utilizar neste cenário. Você recebe estas informações na ativação do plano de hospedagem.

Para realizar a conexão, abra o terminal que possui o cliente SSH e digite o seguinte comando:

$ ssh user@meusite.com.br

Se preferir usar o IP ao invés do domínio, digite:

$ ssh user@189.168.25.89

Lembre-se de substituir os campos user e meusite.com.br/189.168.25.89 pelas suas credenciais, sendo user o seu login.

Após digitar o comado, tecle “Enter”. Se o nome de usuário e o endereço do servidor estiverem corretos, a mensagem abaixo vai aparecer no terminal:

SSH: autorização no terminal

Esta mensagem aparecerá apenas uma vez, no primeiro acesso. Ela informa que não foi possível estabelecer a autenticidade do endereço em questão e pergunta se você quer continuar. Para continuar, você precisa escrever no terminal a palavra yes e pressionar “Enter”.

Em seguida, o terminal solicitará a senha de acesso. Digite-a no terminal. Ela não será exibida, o que pode dar a impressão de que nada está sendo digitado. Não se preocupe, este é o comportamento normal do terminal ao digitar senhas. Se preferir, você pode copiar e colar a senha neste momento. Após digitar a senha, tecle “Enter” e você terá acesso ao servidor.

Uma vez que o acesso foi estabelecido, o nome de usuário e o nome do servidor aparecerão antes do símbolo “$”. Para visualizar os diretórios e arquivos presentes no servidor, digite o comando “ls” e tecle enter. Você verá algo como a imagem abaixo:

lista de arquivos no terminal

Na lista de arquivos visualizada acima, a pasta public_html/ é a que deve ser usada para publicar o seu site ou qualquer outro arquivo que você queira tornar público.

Método 2: usando um par de chaves pública e privada

Existe uma maneira ainda mais segura de acessar o servidor, que é usando um par de chaves pública e privada. Estas chaves são apenas dois fragmentos de texto que contém uma combinação de caracteres em par, utilizada para descriptografar dados. O funcionamento é parecido com o de uma fechadura: somente quem possui a chave certa consegue abrir a fechadura correspondente.

A chave pública deve ser armazenada no servidor e a chave privada no computador do usuário. A chave privada não deve ser compartilhada com ninguém. Ao solicitar acesso a um servidor, ele fará um teste de criptografia usando as duas chaves. Se o resultado do teste for positivo, ou seja, se a mensagem for descriptografada com o uso das duas chaves, você poderá acessar o servidor sem precisar de um login e senha. Este método é mais seguro do que o primeiro, porque somente você possui a chave privada.

Outro detalhe interessante é que a sua chave pública pode ser inserida em outros servidores. Assim, você poderá acessar diversos servidores sem precisar gerar uma nova chave. Basta, para isso, que a sua chave pública seja inserida no servidor que você deseja acessar.

Gerando um par de chaves pública e privada

Você pode gerar as chaves SSH de diversas maneiras. Um método é usar o comando ssh-keygen diretamente no terminal. Ao digitar este comando, você será questionado sobre o nome do arquivo que deseja inserir em sua chave privada. Geralmente o nome é id_rsa e ele será salvo automaticamente em um diretório oculto, de nome .ssh, localizado na raiz do diretório do usuário. Você pode apenas teclar “Enter” para manter esta configuração padrão.

Você também será questionado se deseja criar uma senha de criptografia para sua chave privada. Assim, mesmo que alguém consiga roubá-la de seu computador, ela não terá utilidade, pois precisará de uma senha para uso. Se não desejar deixar sua chave privada sem senha, basta deixar em branco e teclar “Enter”. O terminal então vai gerar o par de chaves e mostrar na tela sua localização. Uma imagem randômica também será exibida. Essa imagem é uma representação gráfica do padrão aleatório que gerou a sua chave. Em teoria, ela serve para oferecer a possbilidade de comparação visual de sua chave. Na prática você pode ignorar isso.

Se tudo der certo, o terminal exibirá uma tela como no exemplo abaixo:

Geração das chaves pública e privada no terminal

Inserindo a chave pública no servidor

Depois de gerar o par de chaves, você precisa inserir sua chave pública no servidor. Isso pode ser feito de algumas maneiras distintas, dependendo da empresa. Em hospedagens que possuem o painel de controle cPanel, há uma área para gerenciamento de chaves SSH.

Para importar sua chave via cPanel, acesse o painel e localize a área para gerenciamento do SSH, como exibido abaixo no cPanel da hospedagem GoDaddy.

Recorte do cPanel da GoDaddy

Clique no ícone “Acesso SSH” e depois no botão “Ativar”. Em seguida, escolha a opção “Gerenciar chaves do SSH”.

Gerenciamento de chaves SSH no cPanel da GoDaddy

Na tela de gerenciamento, clique na opção “Importar chave”. Na tela seguinte, preencha o campo nome usando o padrão, que é id_rsa. Em seguida, abra o arquivo id_rsa.pub, que está salvo em seu computador, na pasta ~/.ssh/id_rsa.pub. Use o bloco de notas ou um editor de códigos para abrir este arquivo. Copie o conteúdo do arquivo no campo “chave pública”. Você pode deixar o campo chave privada e o campo senha em branco. Ao final, conclua a importação da chave.

Inserção de chavs SSH no cPanel

Se tudo der certo, você poderá realizar o próximo acesso SSH sem ter que digitar a senha no terminal. Dependendo da hospedagem, pode ser necessário autorizar a chave que você acabou de enviar, o que também pode ser feito pelo cPanel.

Se a sua hospedagem não oferece o cPanel, consulte a documentação da mesma ou entre com contato com o suporte para verificar como você pode inserir sua chave pública no servidor, para conseguir acesso via SSH.

Criando um arquivo config

Uma dica muito útil para quem utiliza o SSH no dia a dia é criar um arquivo de configuração, chamado apenas de config. Neste arquivo você colocará as credenciais do seu servidor e poderá definir o nome que desejar para ele. Isso evitará que você tenha que digitar o nome de usuário e o endereço do servidor sempre que quiser abrir uma nova conexão. Ao invés de usar $ ssh user@meuservidor.com.br, você poderá digitar apenas $ ssh servidor e a conexão será feita, baseada nas credenciais presentes no arquivo config.

Para criar o arquivo de configuração, em seu computador, navegue até o diretório .ssh e crie um arquivo de nome config (assim mesmo, sem nenhuma extensão). Abra este arquivo com um editor de códigos ou com o bloco de notas e coloque as seguintes informações:

Host servidor
    HostName meusite.com.br
    Port 22
    User usuario

No exemplo acima, substitua servidor por um nome qualquer (que será usado no comando SSH). O trecho meusite.com.br deve ser o domínio configurado ou o endereço de IP do servidor. O campo usuario deve ser substituído pelo nome de usuário usado para acessar o servidor. A porta 22 geralmente é a utilizada neste tipo de acesso, mas algumas empresas podem escolher a porta 2222. Consulte sua empresa de hospedagem, caso tenha dúvidas.

Salve o arquivo config com estes dados dentro da pasta ~/.ssh/config. Agora você poderá acessar o servidor com SSH usando o comando ssh servidor (no caso, usando o nome que você definiu na linha Host).

O que se pode fazer em um servidor usando SSH

É importante entender que o SSH é apenas o protocolo que dá acesso ao servidor. Portanto, o comando SSH é usado para viabilizar o acesso. Uma vez “dentro” do servidor, você poderá executar qualquer comando que o seu usuário tenha permissão para usar.

Assim, se você for um usuário root, poderá gerenciar praticamente todos os aspectos da hospedagem, incluindo o reboot do sistema e de serviços. Se você for um usuário padrão, apesar de ter menos autonomia, ainda assim poderá se valer de comandos poderosos para gerenciar seu site.

Não entraremos em detalhes sobre como usar um terminal linux em um servidor, mas podemos citar, no entanto, algumas das ações que podem ser realizadas diretamente no servidor, usando um acesso SSH. Dentre elas podemos citar:

  • Criar, apagar e editar arquivos;
  • Criar e apagar diretórios;
  • Copiar, mover e renomear diretórios e arquivos;
  • Fazer backup de arquivos e bancos de dados;
  • Transferir arquivos entre servidores.

Conclusão

Neste artigo, vimos o que é SSH e por que devemos usá-lo em nossa hospedagem. Vimos também como configurar o acesso e conhecemos algumas das ações que podemos realizar diretamente no servidor, através deste protocolo. Apesar de parecer uma ferramenta intimidadora, a princípio, a configuração inicial pode ser feita com facilidade.

Este tipo de conhecimento é indispensável para qualquer pessoa que deseja se profissionalizar e que está aprendendo programação e/ou desenvolvimento de sites e aplicações na internet.

Ficou com alguma dúvida? Deixe um comentário e teremos prazer em conversar.

Tags:

Por:

Tudo Sobre Hospedagem de Sites é um site independente e que se propõe a ser exatamente o que sugere seu nome: uma fonte de conhecimento relevante sobre o universo de hospedagem de sites.

10 Comentários

  1. rafael

    Olá, boa noite. Gostaria de saber se posso usar o conteúdo SSH no meu trabalho da faculdade ?

    Responder
    • Bill Bordallo
      Cofundador - Tudo Sobre Hospedagem de Sites

      Olá, Rafael,
      Sim, pode usar o conteúdo sem problemas em seu trabalho de faculdade. Pedimos apenas a gentileza de informar a fonte.
      Qualquer dúvida, estamos à disposição.

      Responder
  2. Marlene

    Olá!
    Ótimo post!
    Estou com a seguinte dúvida, quando acesso via putty ou git recebo uma mensagem de erro “network error connection time out”, você sabe me dizer o que acontece? O que devo fazer?

    Responder
    • Bill Bordallo
      Cofundador - Tudo Sobre Hospedagem de Sites

      Olá, Marlene,
      Esse erro está relacionado com a conexão entre o seu terminal e o servidor. Primeiramente, certifique-se de que você está conectada à internet. Sei que esta verificação pode parecer óbvia para alguns, mas não custa nada lembrar. 🙂 Em seguida, verifique se você está usando o endereço correto (nome ou IP) do servidor, e também se a porta de acesso está correta. Por padrão, conexões SSH utilizam a porta 22, mas é possível que a empresa que fornece o serviço tenha alterado isso. Algumas hospedagens, por exemplo, utilizam a porta 2222, ao invés da 22.
      Se depois de realizar as verificações acima você ainda não conseguir acessar o servidor via SSH, entre em contato com o suporte da hospedagem e veja se existe alguma configuração adicional que você não está utilizando.
      Espero ter ajudado. Se tiver outras dúvidas, basta entrar em contato!
      Abraços.

      Responder
    • Redação
      Equipe Tudo Sobre Hospedagem de Sites

      Olá, Denilinderson,
      Obrigado pela sugestão. 🙂
      Abraços.

      Responder
    • Redação
      Equipe Tudo Sobre Hospedagem de Sites

      Olá, Vagner!
      Obrigado pela sugestão. O artigo já foi atualizado.
      Abraços.

      Responder
  3. Daniel Clemente

    Tenho a seguinte duvida, vocês dizem: “A conexão exige autenticação dos dois lados (servidor e computador) e é criptografada. Assim, mesmo se alguém interceptar o pacote de dados que está sendo transmitido, não será possível visualizar o conteúdo da mensagem, pois apenas os computadores que estão conectados entre si possuem a chave para descriptografá-la.”, mas se eu simular um computador durante a interceptação de dados conseguindo descobrir a chave eu teria acesso aos dados?

    Responder
    • Redação
      Equipe Tudo Sobre Hospedagem de Sites

      Olá, Daniel!
      Se você conseguir descobrir a chave para descriptografar a mensagem, sim, nesse caso você conseguirá decifrar e visualizar os dados que estão sendo trocados entre as partes. Devo alertá-lo, no entanto, que apesar de não ser impossível, essa é uma possibilidade bastante remota. Isso porque o algoritmo que vem sendo adotado como padrão na internet, o SHA-2 é considerado praticamente indecifrável. Esta versão do algoritmo foi criado pela NASA em 2001. Para saber mais acesse este artigo da Wikipédia.
      Se pudermos ajudá-lo com mais alguma dúvida, basta entrar em contato.
      Abraços.

      Responder

Deixe um comentário

Todos os comentários são moderados. Então, seu comentário não será exibido imediatamente após o envio.
Mas fique tranquilo(a), porque ele será respondido em breve. 😉