Como acessar os servidores e transferir arquivos | LaMCAD
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.
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.
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.
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 é 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.
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á:
Após informar a senha correta, você terá acesso ao terminal da máquina remota.
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.
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.
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
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>
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.
sent 68 bytes received 12 bytes 17.78 bytes/sec
total size is 6 speedup is 0.07
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
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.
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.
Para transferir um arquivo ou diretório, seja qual for o sentido da transferência, siga os seguintes passos:
Selecione-o com o botão esquerdo do mouse;
Com esse botão pressionado, arraste a seleção para o local desejado;
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.
Mais informações sobre como utilizar o programa podem ser encontradas aqui .
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.
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: