SSH: conectando num servidor remoto
Tudo que você aprendeu até aqui roda igual num servidor do outro lado do mundo — SSH é a porta de entrada pra isso.
Até agora, todo comando desta trilha rodou na sua própria máquina. Mas o destino final de praticamente todo projeto real é um servidor remoto — um computador em outro lugar do mundo, sem tela nem mouse, que você só acessa via terminal. ssh (Secure Shell) é o comando que abre essa conexão.
Conectando com ssh usuario@host
ssh joana@203.0.113.42joana é o usuário que existe naquele servidor (não necessariamente igual ao seu usuário local), e 203.0.113.42 é o endereço do servidor — pode ser um IP direto ou um domínio. Depois de autenticado, o prompt muda pra indicar que você não está mais na sua máquina: repare que virou joana@servidor, não o nome da sua máquina local. Todo comando que você aprendeu nesta trilha — ls, cd, nano, ps — funciona exatamente igual aqui, só que rodando no servidor remoto.
Senha vs. chave pública/privada
O exemplo acima pediu senha, que é o jeito mais simples de autenticar — mas também o menos seguro, vulnerável a tentativas repetidas de adivinhação. O jeito recomendado em produção é autenticação por par de chaves: uma chave privada, que fica só na sua máquina e nunca é compartilhada, e uma chave pública correspondente, que você registra no servidor.
ssh-keygen -t ed25519Isso gera dois arquivos: id_ed25519 (a chave privada — protege com uma senha se possível, e nunca compartilhe esse arquivo) e id_ed25519.pub (a chave pública, segura pra compartilhar). Pra autenticar sem senha, a chave pública precisa estar dentro do arquivo ~/.ssh/authorized_keys no servidor — o servidor usa isso pra conferir que quem está tentando entrar realmente possui a chave privada correspondente, sem a chave privada nunca sair da sua máquina.
scp — copiando arquivo entre máquinas
Com SSH configurado, copiar arquivo entre sua máquina e o servidor usa scp (secure copy), com uma sintaxe parecida com cp, mas indicando de qual máquina pra qual:
scp deploy.sh joana@203.0.113.42:/home/joana/O formato usuario@host:/caminho indica o destino remoto. Pra copiar no sentido contrário — do servidor pra sua máquina — só inverte a ordem dos dois argumentos:
scp joana@203.0.113.42:/home/joana/log-erro.txt .O . no final significa "salva aqui, na pasta atual da minha máquina" — o mesmo . da lição 2.
Exercício
Você já gerou seu par de chaves com ssh-keygen e quer conseguir entrar no servidor 198.51.100.7 como usuário deploy sem digitar senha toda vez. Que arquivo, no servidor, precisa conter sua chave pública?