Como ferramenta, o SSH exige que você forneça uma senha para o usuário SSH ou uma chave SSH para o host de destino. Neste tutorial, exploraremos como copiar arquivos e diretórios usando o comando scp.
Comando scp
O comando SCP está disponível em qualquer sistema que tenha os pacotes de ssh-client e servidor instalados. Você pode invocar o comando scp com a seguinte sintaxe:
$ scp user@fonte_host: fonte_filename user@destino_host: destino_filename
O comando anterior leva alguns parâmetros como:
Verifique se o usuário especificado possui as permissões de leitura e gravação no arquivo de destino ou diretório do host remoto.
Você também pode especificar outras opções no comando SCP para alterar seu comportamento padrão. As opções aceitas incluem:
Você pode verificar as outras opções executando o seguinte comando:
$ man scp
Nota: Embora o SCP mostre as mensagens descritivas dos arquivos e diretórios que você está copiando, ele não o leva ao substituir os arquivos. Portanto, certifique -se de fornecer nomes exclusivos para os arquivos que você copia para evitar a perda de dados.
Copie o arquivo do host local para o remoto
Você pode copiar um arquivo da sua máquina local para um host remoto executando o seguinte comando:
$ scp fonte_file.Ext User@remote_addr:/remote/dir
Por exemplo, para copiar o arquivo olá.TXT TO/HOME/Debian/Arquivos Diretório, podemos executar o seguinte comando:
$ scp Olá.txt [email protected]:/Home/Debian/Arquivos
O comando solicitará a senha do usuário remoto especificado. Se você adicionou sua chave SSH ao host remoto, o comando fará login e transferirá automaticamente os arquivos de destino.
Lembre -se de que o comando SCP preservará o nome do arquivo original, a menos que especificado. Por exemplo, para salvar o arquivo em um diretório diferente, você pode executar o seguinte comando:
$ scp Olá.txt [email protected]:/Home/Debian/Files/Hello_New.TXT
Isso mudará o nome do arquivo de olá.txt para hello_new.txt na máquina remota.
Copiar diretório de host local para remoto
Se você deseja copiar um diretório da sua máquina local para um host remoto, use a opção recursiva, conforme mostrado na seguinte sintaxe:
$ scp -r src_dir usuário@remote_host:/path/on/remote/host/
Por exemplo, para copiar todos os arquivos no diretório /var /logs da máquina local, você pode executar o seguinte comando:
$ scp -r/var/logs/[email protected]:/Home/Debian/Logs
Os sinalizadores -r dizem ao comando SCP para copiar o diretório recursivamente. Se o diretório de destino não existir no host remoto, o SCP o criará automaticamente.
Copie arquivos do host para host remoto
Em alguns casos, pode ser necessário copiar arquivos de um host remoto para outro host remoto. Você pode realizar isso executando o seguinte comando:
$ scp user_1@host_1: src_file user_2@host_2: target_path
O comando copiará os arquivos especificados no parâmetro SRC_FILE para o caminho especificado no parâmetro Target_Path.
Certifique -se de que ambas as máquinas estejam online e que possam se comunicar via SSH.
Conclusão
Este tutorial o leva usando o comando SCP para copiar os arquivos e diretórios via SSH.