Como acessar os servidores e transferir arquivos

Para acessar tanto o headnode remoto no ambiente HPC, quanto as VMs no ambiente Cloud, ou para transferir arquivos entre um servidor remoto e o computador local, o usuário deve usar o protocolo de rede SSH (Secure Shell). Com este protocolo, os dados trocados entre a máquina local e a máquina remota são criptografados, o que proporciona maior segurança. O protocolo SSH pode ser utilizado através de programas que rodam em terminal ou através de aplicativos gráficos. A seguir, apresentamos um breve tutorial para auxiliar o usuário na utilização desses programas.

Para exemplificar a aplicação dessas ferramentas utilizaremos um usuário hipotético denominado usuariox  e uma máquina remota hipotética com endereço IP dado por 192.168.15.10. Vale ressaltar que, o endereço IP do headnode do nosso ambiente HPC é informado no guia do usuário.

Obs: Embora a rede Wi-Fi Eduroam possibilite o acesso à Internet e aos serviços web da UFG, ela não permite conexão à algumas portas de comunicação utilizadas nos servidores do LaMCAD. Essa impossibilidade ocorre devido a uma política de segurança da Rede Nacional de Ensino e Pesquisa (RNP) e, portanto, cumprida pelo Centro de Recursos Computacionais (Cercomp), órgão responsável pela disponibilização e gerenciamento da Rede Eduroam na UFG. Desse modo, quando estiverem dentro da Universidade,  utilizem a rede cabeada para acessar os serviços do LaMCAD, como o cluster HPC e as máquinas virtuais. Certos de contar com a compreensão de todos, nos colocamos à disposição para eventuais dúvidas.

Acesso remoto
 

Abaixo listamos duas alternativas para o acesso remoto usando o protocolo SSH: uma é via linha de comando, utilizando o comando ssh,  e a outra é através da interface gráfica do programa PuTTY

Comando ssh

O comando ssh, executado através de um terminal (também chamado de console), é nativo no Mac OS X e nas principais distribuições Linux. No Windows 10 também é possível habilitar o comando ssh para terminal. Um guia passo a passo de como fazer isso pode ser visto aqui  ou  aqui .

Sintaxe básica do comando ssh :

ssh nome_de_usuário@endereço_IP 

 

A seguir, um exemplo da saída deste comando para a 1ª tentativa de login :

ssh usuariox@192.168.15.10 

The authenticity of host '192.168.15.10 (192.168.15.10)' can't be established.

ECDSA key fingerprint is SHA256:W+Fw2+o/sBD7HzMDH0ZJ6+5/CkIJADWSUjzFbPee9JU.

Are you sure you want to continue connecting (yes/no)? yes

 

Note que, no final dessa saída aparece uma solicitação de confirmação para estabelecimento da conexão.  Ao responder "yes" e pressionar enter, aparecerá :

Warning: Permanently added '192.168.15.10' (ECDSA) to the list of known hosts.

usuariox@192.168.15.10's password:

 

Observe que, surgirá uma mensagem informando que o servidor entrou na sua lista de hosts (servidores) conhecidos e que a chave pública fornecida por ele ficará armazenada em seu sistema. Em seguida, a sua senha de usuário será solicitada. Se esta for informada corretamente, você terá acesso ao terminal da máquina remota.

No caso das máquinas virtuais no ambiente Cloud, a porta do servidor SSH não é a porta padrão (22) e portanto deve-se informar a porta correta através da sintaxe

ssh -p porta nome_de_usuário@endereço_IP

PuTTY

PuTTY é um programa com interface gráfica para acesso remoto de servidores. É um software livre e pode ser baixado aqui . A janela inicial do PuTTY é mostrada a seguir. Nela você informará o endereço IP, a porta e o protocolo.

putty-login1

Após clicar em Open, aparecerá, na 1ª tentativa de login, uma mensagem solicitando uma confirmação para prosseguir na tentativa de conexão. Ao confirmar, a janela de login do PuTTY aparecerá:

putty-login2

Após informar a senha correta, você terá acesso ao terminal da máquina remota. 

Transferências de arquivos
 

Transferências de arquivos entre máquinas utilizando o protocolo SSH podem ser feitas de várias formas. Dentre elas destacamos os comandos scp e rsync e os programas gráficos WinSCP e Filezilla, que são apresentados a seguir. 

Comando scp

Sintaxe básica do comando scp para transferência de arquivos:

scp [opções] <origem> <destino>

 

Novamente, no caso das máquinas virtuais no ambiente Cloud, onde a porta do servidor SSH é diferente da porta padrão, deve-se informar a porta correta através da sintaxe

scp [opções] -P porta <origem> <destino>

 

Exemplo 1: Para transferir o arquivo file.dat, localizado em /home/usuariox na máquina local, para o diretório /home/usuariox/trabalhos, localizado na máquina remota, o usuariox deve executar no terminal da máquina local o seguinte:

scp /home/usuariox/file.dat usuariox@192.168.15.10:/home/usuariox/trabalhos
 

Ao executar o comando, a senha de usuário é solicitada. Não havendo falha de autenticação, a transferência será realizada e as informações da mesma são apresentadas, como é mostrado a seguir.

usuariox@192.168.15.10's password:

file.dat                    100%  2845KB  11.2MB/s   00:00

 

Exemplo 2: Para transferir o arquivo file.dat,  localizado em /home/usuariox/trabalhos na máquina remota, para o diretório /home/usuariox, localizado na máquina local, o usuariox deve executar no terminal da máquina local o seguinte:

scp usuariox@192.168.15.10:/home/usuariox/trabalhos/file.dat /home/usuariox

No caso  da transferência de pasta deve-se adicionar a opção -r do comando. Se no Exemplo 1 a transferência fosse de uma pasta chamada folder, teríamos o seguinte: 

scp -r /home/usuariox/folder usuariox@192.168.15.10:/home/usuariox/trabalhos
 

Para mais informações acerca deste comando, digite no terminal da sua máquina 

man scp

Comando rsync

Sintaxe básica do comando rsync para transferência de arquivos:

rsync [opções] <origem> <destino>  

 

Mais uma vez, no caso das máquinas virtuais no ambiente Cloud, onde a porta do servidor SSH é diferente da porta padrão, deve-se informar a porta correta através da sintaxe

rsync [opções] -e 'ssh -p porta' <origem> <destino> 
 

Exemplo 1: Para transferir o arquivo file.dat, localizado em /home/usuariox na máquina local, para o diretório /home/usuariox/trabalhos, localizado na máquina remota,  o usuariox deve executar no terminal da máquina local o seguinte:

rsync -avz /home/usuariox/file.dat usuariox@192.168.15.10:/home/usuariox/trabalhos

 

Ao executar o comando, a senha de usuário é solicitada. Não havendo falha de autenticação, a transferência será realizada e as informações da mesma serão apresentadas, como é mostrado a seguir.

usuariox@192.168.15.10's password: 

sending incremental file list

file.dat

sent 68 bytes  received 12 bytes  17.78 bytes/sec

total size is 6  speedup is 0.07

 

Exemplo 2: Para transferir o arquivo file.dat, localizado em /home/usuariox/trabalhos na máquina remota, para o diretório /home/usuariox, localizado na máquina local,  o usuariox deve executar no terminal da máquina local o seguinte:

rsync -avz usuariox@192.168.15.10:/home/usuariox/trabalhos/file.dat /home/usuariox

 

No caso  da transferência de pasta deve-se adicionar a opção -r do comando. Supondo que no Exemplo 2 a transferência fosse de uma pasta chamada folder, teríamos o seguinte: 

rsync -ravz usuariox@192.168.15.10:/home/usuariox/trabalhos/folder /home/usuariox

 

Para mais informações acerca deste comando, digite no terminal da sua máquina

man rsync

WinSCP

O WinSCP é um software livre e pode ser baixado aqui . A janela de login do WinSCP é apresentada logo abaixo. Nela você informará o seu nome de usuário, endereço IP ( ou hostname), protocolo e  porta. Sugerimos utilizar o protocolo SCP (Secure Copy Protocol) ou o protocolo SFTP (SSH File Transfer Protocol). Ambos utilizam o protocolo SSH. 

winSCP-fig1

Ao clicar em Login e, em seguida, ao confirmar que quer continuar na tentativa de acesso, ficará em destaque uma janela mostrando no lado esquerdo o diretório /home na máquina local e no lado direito o diretório /home  na máquina remota. Essa é a janela de transferências de arquivos e diretórios.

winSCP-fig2

Para transferir um arquivo ou diretório, seja qual for o sentido da transferência, siga os seguintes passos:

  1. Selecione-o com o botão esquerdo do mouse;
  2. Com esse botão pressionado, arraste a seleção para o local desejado;
  3. Com a seleção no destino, solte o botão.

Observe que,  o ícone do PuTTY (destacado na figura abaixo) está dentre os ícones que aparecem na parte superior da janela de transferências. Portanto, se o PuTTY estiver instalado em sua máquina, ele pode ser acionado via WinSCP. 

winSCP-fig4

Mais informações sobre como utilizar o programa podem ser encontradas aqui .

FileZilla

O FileZilla também é um software livre e pode ser baixado aqui .

A janela de transferências de arquivos e diretórios do Filezilla é apresentada a seguir. Na parte superior da  janela encontram-se os campos para realizar o login (Host, Nome de usuário, Senha e Porta). No campo Host, o usuário deve digitar sftp://endereço_IP ou sftp://hostname. Isto deve ser feito para que o protocolo SFTP (SSH File Transfer Protocol) seja utilizado. Como o próprio nome sugere, o SFTP utiliza o protocolo SSH. Após inserir as informações mencionadas, o usuário deverá clicar em "Conexão rápida" para estabelecer a conexão.

zilla-fig1

Após o login, aparecerá o diretório /home da máquina remota ao lado do diretório /home da máquina local, conforme apresentado abaixo: 

zilla-fig2

Para transferir um arquivo ou diretório, seja qual for o sentido da transferência, siga os seguintes passos:

  1. Selecione-o com o botão esquerdo do mouse;
  2. Com esse botão pressionado, arraste a seleção para o local desejado;
  3. Com a seleção no destino, solte o botão.

Mais informações sobre como utilizar o programa podem ser encontradas aqui