Introdução – Este não é um post de um especialista
Este é o primeiro post do meu diário de bordo. Um espaço para registrar e compartilhar as coisas que eu aprendo. Deixa só eu explicar como esse diário vai funcionar. Ele nada mais é do que um tipo de caderno onde eu escrevo aquilo que estudo.
Eu sempre tive o hábito de fazer esse tipo de registro. Existem aqui comigo muitos cadernos guardados desde a época do meu primeiro mestrado. Muita coisa fica registrada no meu canal do youtube também, mas lá a coisa é mais nichada e orientada para a matemática. Cadernos têm a desvantagem de não estarem na núvem e, além disso, existe ainda o risco deles serem destruídos. Por isso esse espaço.
Desde meados de 2009 eu tenho contato com distros Linux, em especial, com Ubuntu. E a grande vantagem desse contato é a similaridade com os servidores web. De uns tempos pra cá, resolvi não só me tornar usuário de Linux, mas também entender mais a fundo como ele funciona. Caso você tenha interesse em se aprofundar nessa área, tem um vídeo e um post do Fábio Akita chamado O Guia Definitivo de Ubuntu para Devs Iniciantes. Vale muito a pena estudar! Tem uma coisa que ele fala lá que é importante ressaltar aqui.
Na verdade, o melhor ambiente de desenvolvimento sempre é um Linux. Especialmente se estamos falando de programação de aplicações Web. No final você sempre vai subir a aplicação num servidor da Amazon AWS ou Azure ou Google Cloud ou Heroku e sempre vai ser servidores Linux, por isso quanto mais perto do ambiente final de produção você puder estar, sempre vai ser melhor.
Para navegar dentro do servidor, são necessários certos conhecimentos de como uma máquina com uma distro Linux funciona e sua estrutura de diretórios. Ter a oportunidade de aprender isso através do terminal Shell do meu computador diminuiu bastante a minha curva de aprendizagem na hora de fazer isso em um servidor “de verdade”.
No caso dos servidores da Hostgator, onde atualmente hospedo o meu blog, é utilizado uma distro chamada CentOs, da Red Hat, que é um pouco diferente do meu antigo Ubumtu, distro baseada em Debian. Nada que uma boa documentação não ajude a superar todas as dificuldades. O que eu considero mais importante aqui é entender que é perfeitamente possível navegar em um computador sem uma interface gráfica através de um emulador de terminal e a segunda coisa é entender como funciona a estrutura de diretórios de um computador Linux e de um servidor.
O que é SSH?
SSH é uma sigla para Secure Socket Shell um protocolo de comunicação seguro entre duas ou mais máquinas conectadas em rede. De acordo com um post do Diolinux
O protocolo SSH é uma alternativa para proteger conexões entre diferentes máquinas conectadas a partir de uma rede externa insegura, fornecendo opções para autenticação forte e controle de tráfego.
A primeira conexão que eu consegui estabelecer via SSH foi em um antigo computador que eu guardo aqui na minha casa. No fim das contas, computadores antigos podem muito bem serem usados como servidores caseiros de armazenamento de arquivos. Para isso, basta habilitar o acesso através de uma máquina externa a esse computador. Isso varia de distro para distro. Mas geralmente acontece em configurações > compartilhamento
Nessa opção, ative o compartilhamento e, em seguida, ative a opção de computador remoto. Nessa opção, configure o seu servidor. Configure o seu nome de usuário e a senha de acesso ao servidor para esse usuário. Enquanto o compartilhamento e o acesso ao computador remoto estiverem ativados, é possível ter acesso a esse computador ou servidor através de um PC remoto.
Agora vamos à configuração da máquina cliente.
Abra o terminal (no caso do meu pop-os, eu digito ctrl + alt + t)
Para realizar a conexão com o servidor remoto, digite o comando no seguinte formato:
ssh usuario@servidor
Será perguntado a você se você deseja se conectar via SSH no servidor através da porta 22. Digite yes.
Em seguida, será solicitada a senha que você cadastrou ao ativar o computador remoto. Pronto. A próxima tela indica que você já estará na estrutura de diretórios do servidor.
Eu aprendi a fazer esta conexão em um computador local antes de me aventurar em um acesso via SSH em um servidor distante.
A estrutura interna de um servidor web
Como de forma geral, o servidor web terá uma distro linux instalada nele, é muito cômodo conhecer a estrutura de pastas (diretórios) desse servidor/distibuição. Aqui vai um exemplo de estrutura que eu encontrei na web:
Como se conectar a um servidor remotamente via SSH?
O comando para se conectar a um servidor web remoto é praticamente o mesmo já descrito anteriormente.
No caso do servidor da hostgator, você obtem as credenciais de acesso ao servidor quando contrata o serviço de hospedagem e recebe um email com os dados de acesso. Após entrar no Cpanel, é necessário habilitar o acesso remoto via SSH.
No cpanel, na parte de segurança, entre na opção SSH e clique na opção que habilita o acesso.
Além disso, ainda é necessário entrar em contato com o suporte técnico para que eles habilitem o acesso ao seu site.
No meu caso, foi bem tranquilo e em questão de minutos, meu acesso já estava habilitado.
Para saber mais sobre o assunto, recomendo o vídeo do Slackjeff sobre ssh:
Alguns comandos úteis para navegar no servidor
É muito importante conhecer alguns comandos de terminal para trabalhar no servidor remoto via ssh.
- cd (abreviação de change directory) para mudar a pasta
- cat para saber informações do arquivo ou do diretório
- chmod para alterar as permissões de um arquivo ou pasta
- nano – editor de texto para alterar algum arquivo.
Esses são alguns exemplos de comandos. Acho que não dá para aprofundar mais do que isso aqui nesse post. Recomendo que sejam vistos os links externos para um maior aprofundamento desse tema.
Pingback: Diário de bordo -