Publicado em Ferramentas, GNU/LInux, Tecnologia, Terminal

OpenSSH: Acesso Remoto pelo Terminal Linux

E um dia você instala Linux no computador da sua sogra, que mora em uma outra cidade e precisa que você atualize o computador ou solucione, sei lá, qualquer coisa. Ou você precisa administrar um servidor Web. Ou você é um desses afortunados que viajam pelo mundo apenas com uma netbook, enquanto toda sua informação permanece em casa, no desktop.

Secure Shell (SSH) permite você acessar um outro computador de forma remota e fazer tudo aquilo que você faria no terminal se estivesse sentado na frente dele. Nem que fosse um acesso telepático. Você pode atualizar, instalar aplicativos; editar arquivos de configuração; fazer upload ou download de arquivos; ativar, desligar ou reiniciar serviços ou a própria máquina, etc.

Instalando o Servidor SSH

OpenSSH funciona em formato cliente-servidor. A máquina acessada de forma remota é o servidor; a máquina que faz o acesso é o cliente. Praticamente toda distribuição Linux já traz um cliente SSH instalado. O que precisamos instalar é o servidor na máquina que precisa ser acessada:

$ sudo apt install openssh-server

Para ter certeza de que o servidor está funcionando (running) podemos tentar qualquer um desses tres comandos (Ctrl-q para sair):

$ systemctl status ssh.service
$ service ssh status
$ ps ax | grep sshd

Se o processo não estiver ativo, ativamos com um dos seguintes comandos:

$ systemctl start ssh.service
$ service ssh start

Estabelecendo a conexão

Para acessar uma outra máquina precisamos conhecer o IP que a identifica na rede interna, ou a IP pública, se o acesso for pela Internet; e precisamos também o login de um usuário autorizado a acessar essa máquina.

Para descobrir a IP da máquina (servidor):

$ ip addr show

E, para estabelecer a conexão:

$ ssh user@ip_ou_hostname

Exemplo:

$ ssh joao@192.168.0.110

Precisaremos introduzir a senha do usuário ‘joao’ (no exemplo) para concretizar o acesso remoto.

Facilitando o acesso

Podemos simplificar o acesso criando, ou editando se já existir, um arquivo config no diretório (oculto) .ssh, adicionando nele os dados dos acessos remotos que utilizamos com maior frequência:

$ nano ~/.ssh/config
Host joao-server
Hostname 192.168.0.110
Port 22
User joao

Dai pra frente, simplesmente escrevemos:

$ ssh joao-server

E pronto!

Transferindo arquivos com SCP

Podemos enviar arquivos de forma muito simples à máquina remota, usando o comando scp (secure copy):

$ scp my-file.txt joao-server:/home/joao/

Precisamos passar o nome do arquivo (“my-file.txt”, assumindo que estamos no mesmo diretório), o nome ou IP do host (“joao-server” ou “192.168.0.110”) , e o path do diretório da máquina remota onde o arquivo será salvado (“/home/joao/” ou simplesmente “~”).

Se enviarmos uma pasta, em vez de um arquivo, precisamos adicionar a opção “-r”:

$ scp -r my-dir joao-server:/home/joao/

Também podemos realizar o movimento inverso, trazer um arquivo da máquina remota pra nossa máquina (o última pontinho representa o diretório atual na máquina cliente):

$ scp joao-server:~/joao-file.txt .

Acessando sem senha

SSH também suporta autenticação por meio de chave pública. Este método é bem mais seguro e confortável do que a autenticação por meio de senha (método suscetível a ataques por força bruta).

Para isso precisamos criar duas chaves, uma pública (id_rsa.pub) que poderemos compartilhar sem medo, e uma outra privada (id_rsa) que deveremos conservar em lugar seguro.

Para criar as chaves:

$ ssh-keygen -b 4096

Esse comando irá criar dois arquivos (id_rsa e id_rsa.pub) no diretório ~/.ssh (oculto) da nossa máquina cliente.

A continuação, copiamos nossa chave pública (id_rsa.pub) na máquina remota:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub <remote host IP ou nome>

O comando ssh-copy-id copia a chave dentro do arquivo ~/.ssh/authorized_keys na máquina remota. Agora, toda vez que quisermos realizar uma conexão remota, o servidor vai reconhecer, de forma segura, o nosso cliente sem necessidade de introduzir uma senha.

Anúncios

Um comentário em “OpenSSH: Acesso Remoto pelo Terminal Linux

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s