Como Fazer Acesso Remoto Com SSH

Como Fazer Acesso Remoto ComSSH

O SSH (Secure Shell) é uma ferramenta muito útil na administração remota de sistemas baseados em Unix/Linux. Por meio dela, é possível fazer login em sessões remotas de shell, possibilitando gerir servidores à distância.

Demonstrarei aqui como usar o SSH por meio de linha de comando em Linux, porém há ferramentas para Windows com a mesma finalidade, como o PuTTY. Porém, não os abordarei.

Nota: Este artigo é um a versão reduzida do artigo bônus do curso Shell Script Para Programadores. Para conhecer melhor o curso e fazer sua matrícula, clique aqui.

 

Uma das principais vantagens do SSH sobre outras formas de acesso remoto é a ênfase em segurança.

É possível abrir uma sessão remota via SSH usando apenas a senha do shell de destino. Porém, uma forma mais segura de se fazer esse acesso é usando um par de chaves público/privado, o que aprimora a segurança da conexão. O funcionamento do par de chaves é semelhante ao que ocorre na vida real, com as assinaturas manuscritas: para que sua assinatura seja legalmente reconhecida, um cartório deve autenticá-la. No caso de assinaturas digitais, essa autenticação é feita por meio de uma passphrase. Ao gerar um par de chaves com o comando ssh-keygen, geram-se dois arquivos no diretório .ssh, dentro de sua home: id_dsa (ou id_rsa) e id_dsa.pub (ou id_dsa.pub). O arquivo finalizado por .pub representa sua chave pública, enquanto o outro contém sua chave privada. Sua chave privada deve ser visível apenas por você, logo, mantenha-a com permissão 600 (permissão padrão desse arquivo). Esse arquivo deve ser sigiloso, pois somente você deve ter acesso à sua chave privada. Já a chave pública pode, e deve, ser visível a qualquer máquina à qual você deseja ter acesso. O conteúdo o arquivo .pub deve estar no arquivo authorized_keys, dentro de $HOME/.ssh, no servidor que deseja acessar.

A passphrase não é utilizada para acessar o servidor remoto, como ocorre com a senha. A passphrase é uma senha utlizada para decodificar sua chave privada. Logo, pode haver uma passphrase diferente para cada chave que você possua, em máquinas diferentes que acessam o mesmo servidor remoto.

Para gerar um par de chaves, usamos o comando ssh-keygen:

$ ssh-keygen -t rsa

Serão solicitados o local onde as chaves devem ser geradas e o passphrase correspondente. Se você mantiver o caminho em branco, a chave será gerada no local padrão.

Após gerar o par de chaves, é necessário informar sua chave pública para o servidor remoto ao qual deseja ter acesso. Isso pode ser feito de duas formas:

1. Utilizando o comando ssh-copy-id, que copia a chave pública para o servidor remoto automaticamente:

$ ssh-copy-id -i ~/.ssh/id_dsa.pub login@servidor

2. Modificando o arquivo ~/.ssh/authorized_keys, do servidor remoto, adicionando, em uma nova linha, o conteúdo de seu arquivo id_dsa.pub. Isso é o que o comando anterior faz automaticamente.

Após isso, em vez de o servidor solicitar sua senha para autenticação, será solicitada sua passphrase para a respectiva chave.

Para acessar um shell remoto, apenas execute o comando a seguir, trocando “login” e “servidor” pelo login e o domínio, ou IP, do servidor remoto:

$ ssh login@servidor

O SSH usa a porta 22 para todo seu tráfego. Logo, o servidor remoto deve possuir essa porta aberta.

Após digitar sua passphrase, você estará em seu shell remoto.

Outra facilidade do SSH é a transferência segura de arquivos. Para isso, podemos usar o comando scp ou o próprio sftp, que é um FTP completo, porém, usando protocolo seguro.

Para tranferir arquivos com scp, procede-se da mesma forma como procedemos com o comando cp, localmente:

$ scp origem destino

Por exemplo:

$ scp meu_arquivo_local beraldo@rberaldo.com.br:~

Isso copia o arquivo meu_arquivo_local para a minha home no servidor rberaldo.com.br

Outro exemplo:

$ scp beraldo@rberaldo.com.br:~/arquivo_remoto .

Isso copia o arquivo arquivo_remoto, do servidor, para o diretório local corrente.

Para iniciar o sftp:

$ sftp login@servidor

Isso inicia um FTP, com protocolo de segurança.

 

Para aprender mais sobre Comandos Linux e Shell Script, veja meu curso Shell Script Para Programadores. Um dos 3 bônus é o artigo completo sobre SSH e chaves RSA e DSA.

The following two tabs change content below.
Graduado em Ciência da Computação, pela Universidade Federal do Paraná (UFPR), é desenvolvedor de software desde 2008, com foco em Desenvolvimento Web com PHP.