Como usar o comando scp para transferir arquivos

Como usar o comando scp para transferir arquivos

Este tutorial explica como usar o SCP (Cópia segura) comando para transferir arquivos entre computadores.

O SCP O comando está disponível em todos os sistemas Linux, Unix e Windows. Sua implementação, com toda a probabilidade, melhorará e facilitará a experiência de rede.

A segurança é fornecida pelo ssh protocolo.

Este comando nos permite transferir arquivos de maneira confiável e segura de um computador para outro. Junto com o sftp Comando, também protegido pelo protocolo SSH, o SCP é uma das técnicas de transferência de arquivos mais seguras.

Depois de ler este artigo, o leitor poderá compartilhar e buscar arquivos facilmente com comandos únicos.

Todos os exemplos práticos deste tutorial contêm capturas de tela, facilitando para cada usuário do Linux entender como os comandos são aplicados.

Requisitos antes de usar o SCP

O usuário baixará arquivos de ou carregar arquivos para, ele deve ter o serviço SSH em execução.

Se o serviço já estiver em execução no servidor, você poderá pular para a próxima seção deste artigo.

Se o serviço não estiver em execução, o usuário poderá instalá -lo seguindo as instruções abaixo para distribuições Linux baseadas em Debian e Redhat.

Em sistemas baseados em Debian como o Ubuntu, o serviço SSH pode ser instalado com o apt Gerenciador de pacotes, conforme mostrado na imagem abaixo.

sudo apt install ssh

Em sistemas baseados em redhat como o CentOS, o serviço SSH pode ser instalado executando o seguinte comando:

Instalação DNF OpenSsh-Server

Quando a instalação terminar, no servidor para o qual você deseja se conectar, inicie o serviço com o SystemCtl comando como mostrado abaixo (sistemas baseados em Debian).

sudo systemctl start ssh

Para começar o ssh Serviço no Redhat Systems Execute:

sudo systemctl start sshd

Como baixar arquivos e diretórios com SCP (Cópia segura)

No primeiro exemplo prático deste tutorial, um usuário baixa um arquivo chamado <arquivo1> Para seu diretório doméstico.

É importante lembrar que o download ou o upload de arquivos requer credenciais de um usuário existente no computador remoto.

A sintaxe para baixar um arquivo com SCP é o seguinte, onde <Usuário remoto> é um usuário existente no computador remoto que o usuário deseja baixar arquivos de. <IP do servidor> é o host ou endereço IP do servidor que armazena o arquivo, <Caminho/para/arquivo> é o caminho para o arquivo para baixar e <Diretor localy> é o diretório local do computador do usuário, onde o arquivo é salvo.

SCP @:

No exemplo abaixo, o usuário local Linux-Hint3 logins como o Linuxhint Usuário remoto no servidor com endereço IP 192.168.0.103 e baixar um arquivo chamado <arquivo1> Para seu diretório doméstico. Uma postagem ls A execução do comando mostra arquivo1 está presente localmente.

Scp [email protected]: arquivo1 ~//

Por padrão, após o login, o diretório de trabalho atual remoto é o diretório inicial do usuário remoto.

O -O A Flag é útil para executar o legado do SCP necessário para transferir arquivos com sistemas que não implementaram o protocolo SFTP.

scp -o [email protected]: arquivo1 ~//

No exemplo abaixo, o usuário baixa um arquivo chamado newfile2, armazenado sob o Área de Trabalho/ subdiretório. O destino local é o diretório local atual representado por um período.

scp [email protected]: Desktop/newfile2 .

Download de diretórios requer apenas adicionar o -r (Recursivo) sinaliza como mostrado na captura de tela abaixo.

No exemplo abaixo, o usuário baixa o diretório remoto nomeado testdir/ para o subdiretório local nomeado diretório/.

scp -r [email protected]: testdir ~/diretório

O -eu Flag permite limitar a transferência de download em kb/s para controlar a largura de banda.

Na captura de tela a seguir, o usuário limita a largura de banda para a transferência a 100 kb/ps. Como você pode ver, o usuário usou um curinga (*) para baixar todos os arquivos cujo nome começa com “Ubuntu”.

scp -l 100 [email protected]: Ubuntu* ~//

Se o usuário quiser acelerar a transferência de arquivo, ele poderá adicionar o -C Para compactar arquivos ou diretórios durante a transferência, deixando a cópia de destino não compactada (se a fonte foi assim).

No exemplo abaixo, o usuário implementa o -C (Compactar) sinalizador para baixar todos os arquivos começando por “Ubuntu”Para o local Área de Trabalho/ subdiretório.

scp -c [email protected]: ubuntu*/home/linux-hint3/desktop/

O -4 a opção força a conexão através do IPv4 e o -6 opção através do IPv6.

Na próxima captura de tela, o usuário força a transferência de arquivo através do IPv4.

SCP -4 [email protected]: ubuntu*/home/linux-hint3/desktop/

Como fazer upload de arquivos e diretórios com SCP

Esta seção explica como fazer upload de arquivos com comandos únicos usando SCP.

A sintaxe para fazer upload de arquivos regulares em um sistema remoto usando SFTP é o seguinte:

SCP @:

No exemplo abaixo, o usuário carrega um arquivo nomeado arquivo1 para o subdiretório remoto nomeado Documentos/.

scp file1 [email protected]: Documentos/

Para fazer upload de diretórios, use o recursivo -r Flag, o restante da sintaxe é semelhante aos exemplos descritos acima.

scp -r desktop/testdir [email protected]: Documentos/

O -O A bandeira é útil para fazer upload de arquivos para sistemas sem o protocolo SFTP.

scp -ou desktop/testdir [email protected]: Documentos/

Para acelerar a transferência, também ao fazer upload de arquivos, o usuário pode comprimir.

No exemplo abaixo, o usuário combina o recursivo -r bandeira com o -C (Flag de compactação).

scp -rc desktop/testdir [email protected]: Documentos/

Desativar SCP Autenticação de senha e ativação de autenticação chave

Originalmente, o protocolo SCP era baseado no protocolo SSH (Secure Shell), mas atualmente funciona através de protocolos mais recentes como sftp ou rsync.

O arquivo de configuração a ser editado para ativar a autenticação chave e desativar o login de senha é /etc/ssh/sshd_config. Este arquivo contém opções adicionais para aumentar a segurança da transferência de arquivos SCP.

No computador, permitindo conexões de entrada de onde os arquivos são baixados ou onde são carregados, abra o /etc/ssh/sshd_config Arquivo com privilégios usando um editor de texto simples como vim ou Nano.

sudo nano/etc/ssh/sshd_config

Role para baixo e encontre a linha contendo PubKeyauthentication no, substitua -o por PubKeyauthentication Sim (Substitua o "não" com "sim”).

Confirme também Permitrootlogina no Para desativar o login de raiz, porque todos no mundo conhecem a existência do usuário raiz, que pode ser o alvo de qualquer tipo de ataque, incluindo força bruta.

O raiz SuperUser existe em todos os sistemas baseados em UNIX, incluindo Linux. Não é uma boa decisão permitir o login com um nome de usuário privilegiado conhecido por todos no mundo.

Não desative o login de senha ainda porque o processo de cópia -chave requer login de senha antes que os sistemas possam autenticar com as chaves.

Saia do arquivo de configuração Salvando as alterações e reinicie o serviço SSH seguindo as instruções abaixo.

Distribuições Linux baseadas em Debian:

sudo systemctl reiniciar ssh

Distribuições Linux baseadas em Redhat:

sudo systemctl reiniciar ssh

No lado do cliente, o computador de download e upload de arquivos, o usuário deve gerar o par de teclas com o ssh-keygen comando.

Depois de executar o comando, pressione DIGITAR Para deixar o diretório padrão (~/.ssh/id_rsa) ou o equivalente em sua distribuição Linux. O processo permite que a implementação de uma senha seja necessária ao autenticar. Ao incluir uma senha, o nível de segurança é aumentado. É recomendável digitar um e pressionar DIGITAR. Se você não quiser adicionar uma senha, apenas pressione DIGITAR sem digitá -lo.

ssh-keygen

Depois de criar com sucesso o par de chaves, o cliente deve enviar a chave para o servidor usando o SSH-COPY-ID comando com a sintaxe do seguinte exemplo prático.

SSH-COPY-ID [email protected]

Depois de copiar a chave, teste o método de autenticação conectando -se ao segundo dispositivo.

Se a autenticação principal for bem -sucedida, o usuário poderá fazer login sem digitar a senha. Se o usuário definiu uma senha ao criar o par de chaves, ele será solicitado em vez da senha, como mostrado na captura de tela abaixo.

sftp @@

Depois de confirmar a autenticação de chave pública funciona corretamente, é altamente recomendável desativar a autenticação de senha.

Para desativar a autenticação de senha, no lado do servidor, Abra o arquivo /etc/ssh/sshd/config com privilégios novamente usando um editor de texto como Nano ou vi.

sudo nano/etc/ssh/sshd/config

Role para baixo no arquivo de configuração e substitua a linha PASSWORDATHenticação sim com PasswordAuthentication no.

Em alguns casos, quando o número de usuários é reduzido, a porta SCP/SSH pode ser alterada para evitar varreduras maciças. Esta alteração deve ser feita neste arquivo. Se o usuário alterar a porta padrão, ele precisará implementar a opção -p ao transferir arquivos.

Sair salvando as mudanças.

Nos sistemas Linux baseados em Debian, reinicie o serviço SSH com o seguinte comando:

sudo systemctl reiniciar ssh

Reinicie o serviço SSH em distribuições Linux baseadas em redhat:

sudo systemctl reiniciar sshd

Agora o usuário pode fazer login com a autenticação das chaves.

Conclusão

Usar o comando scp é muito fácil. Todo usuário do Linux pode aprender melhorando sua experiência com tarefas de rede. Definitivamente facilita interagindo com outros computadores dentro de uma rede da linha de comando. Todas as instruções deste tutorial são válidas para todas as distribuições Linux, exceto os métodos de instalação limitados às distribuições Linux baseadas em Debian e Redhat. Todo administrador de rede que trabalha no terminal deve dominar este comando.