Atualizado: 24/10/2024

Trabalhando com Arquivos de Forma Segura - Linux

Cópia Segura de Arquivos e scp

O comando scp é usado para a cópia segura de arquivos. Seu princípio de funcionamento é semelhante ao comando cp, com a diferença de que para scp é necessário um caminho completo de rede, incluindo os nomes do host e do arquivo que precisam ser copiados. Além disso, se o nome de usuário do host for diferente do nome de usuário no cliente, o cliente também deve especificar o nome de usuário.

A cópia de um cliente para um host é feita da seguinte forma:

scp clientfile host:/hostfile

Este comando copia o arquivo clientfile do computador cliente para o computador host com o endereço "host", no caminho hostfile.

Vale notar que antes de usar o comando scp, NÃO é necessário chamar o comando ssh.

Por exemplo:

programicio@Programicio:~$ scp ~/Documents/hello.txt 192.168.0.116:/home/programicio/Documents/client.txt
programicio@192.168.0.116's password: 
hello.txt                                     100% 1572   132.9KB/s   00:00    
programicio@Programicio:~$

Aqui, eu copio do meu computador o arquivo ~/Documents/hello.txt para o host com o endereço 192.168.0.116. E esse arquivo é salvo no caminho /home/programicio/Documents/client.txt.

Se o login do host for diferente do login do cliente, o endereço do host deve incluir o nome de usuário no host:

scp ~/Documents/hello.txt programicio@192.168.0.116:/home/programicio/Documents/client.txt

A cópia reversa, do host para o cliente, é feita assim:

scp host:/hostfile clientfile

Aqui, o arquivo hostfile do computador host é copiado para o computador cliente no caminho clientfile.

Por exemplo:

programicio@Programicio:~$ scp 192.168.0.116:/home/programicio/Documents/client.txt ~/Documents/hello2.txt
programicio@192.168.0.116's password: 
client.txt                                                     100% 1572    78.8KB/s   00:00  
programicio@Programicio:~$

Neste caso, o arquivo /home/programicio/Documents/client.txt é copiado do host com o endereço 192.168.0.116 para o computador cliente no caminho ~/Documents/hello2.txt.

Outra funcionalidade importante do comando scp é a opção -r, que permite copiar toda a estrutura de subdiretórios.

sftp: FTP Seguro

O comando sftp também é utilizado para copiar arquivos, mas estabelece uma sessão FTP segura entre os computadores. O sftp aceita uma série de comandos como argumento, cada um indicando uma ação específica. Os principais são:

  • put: copia um arquivo do computador atual para outro.

  • mput: copia vários arquivos do computador atual para outro.

  • get: copia um arquivo de outro computador para o atual.

  • mget: copia vários arquivos de outro computador para o atual.

O comando sftp pressupõe que uma conexão SSH já esteja estabelecida entre os dois computadores. Antes de iniciar uma sessão FTP com outro computador, use o comando cd no computador local para navegar até o diretório de onde ou para onde os arquivos devem ser copiados. Ao usar os comandos put, mput, get e mget para transferir arquivos, este diretório será considerado o diretório local padrão. Para estabelecer uma sessão sftp com o computador no endereço 192.168.0.116, use o seguinte comando:

sftp host

Neste caso, presume-se que o nome de usuário no cliente e no host são os mesmos. Se o nome de usuário no host for diferente, ele deve ser especificado antes do símbolo @:

sftp programicio@host

Por exemplo:

programicio@Programicio:~$ sftp 192.168.0.116
programicio@192.168.0.116's password: 
Connected to 192.168.0.116.
sftp>

Após isso, você verá o prompt do sftp e estará no diretório raiz do host remoto. Aqui, você pode usar comandos Linux padrão, como ls para listar arquivos, ou cd para mudar de diretório:

programicio@Programicio:~$ sftp 192.168.0.116
programicio@192.168.0.116's password: 
Connected to 192.168.0.116.
sftp> ls -l
drwxrwxr-x    3 programicio   programicio       4096 Feb 18 16:47 Android
drwxr-xr-x    2 programicio   programicio       4096 Mar 20 13:33 Desktop
drwxr-xr-x    2 programicio   programicio       4096 Mar 20 13:42 Documents
drwxr-xr-x    2 programicio   programicio       4096 Mar 20 13:33 Downloads
drwxr-xr-x    2 programicio   programicio       4096 Mar 20 13:33 Music
drwxrwxr-x    3 programicio   programicio       4096 Dec  6  2022 Pictures
drwxr-xr-x    2 programicio   programicio       4096 Mar 20 13:33 Public
drwxr-xr-x    2 programicio   programicio       4096 Mar 20 13:33 Templates
drwxr-xr-x    2 programicio   programicio       4096 Mar 20 13:33 Videos
drwx------    8 programicio   programicio       4096 Feb 19 22:49 snap
sftp>

A partir desse ponto, é possível transferir arquivos entre os dois computadores. Por exemplo, o comando a seguir usa sftp para copiar o arquivo Documents/client.txt do host remoto para o diretório atual no computador cliente local:

sftp> get Documents/client.txt
Fetching /home/programicio/Documents/client.txt to client.txt
client.txt                                                                   100% 1572   173.4KB/s   00:00
sftp>

Da mesma forma, o comando put permite transferir arquivos do computador cliente para o host:

sftp> cd Documents
sftp> pwd
Remote working directory: /home/programicio/Documents
sftp> put Documents/hello.txt
Uploading Documents/hello.txt to /home/programicio/Documents/hello.txt
hello.txt                                                                    100% 1572   187.5KB/s   00:00
sftp>

Aqui, primeiramente eu navego no host para a pasta Documents (considerando que, por padrão, estou no diretório home). Este é o diretório onde o arquivo copiado do meu computador será salvo. Em seguida, uso o comando put para transferir o arquivo Documents/hello.txt do meu computador para o host. Como, ao iniciar a conexão sftp, eu estava no meu diretório home no meu computador, o comando put buscará o arquivo relativo a esse diretório.

Após concluir a transferência de arquivos, é usado o comando quit ou exit para encerrar a sessão sftp:

sftp> exit
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com