Como usar o comando sftp no Linux

Como usar o comando sftp no Linux

Este tutorial explica como conectar e transferir arquivos através do protocolo SFTP no Linux, além de garantir a implementação de medidas de segurança.

O sftp O comando é uma das ferramentas mais úteis para cada usuário de rede, incluindo usuários domésticos. Este comando também pode ser implementado nos sistemas Windows, tornando -o atraente para cada tipo de rede.

Esta é uma das ferramentas principais da linha de comando para compartilhar com segurança arquivos entre computadores. Além disso, para baixar e fazer upload de arquivos e diretórios, o usuário pode alterar remotamente permissões, remover e renomear arquivos e mais.

SFTP é um comando que definitivamente melhorará a experiência de rede da linha de comando.

Depois de ler este artigo e aplicar exemplos (eles também podem ser reproduzidos em uma máquina virtual), o leitor saberá como configurar os sistemas Linux para transferir arquivos com o comando SFTP, tanto no modo interativo quanto na linha de comando.

O conteúdo é válido para todas as distribuições do Linux e inclui capturas de tela de cenário reais, facilitando para todos os leitores entender como os comandos são aplicados independentemente do nível de conhecimento anterior.

Breve introdução a sftp

Anteriormente FTP (Protocolo de Transferência de Arquivos) era o único método para transferir arquivos entre clientes e servidores ou entre dois dispositivos de rede.

Os usuários usados ​​para fazer upload de todos os arquivos de download de servidores FTP com permissões para ler e escrever nos diretórios permitidos.

Mas o protocolo FTP sofreu vulnerabilidades de alto risco e foi substituído por protocolos mais novos e seguros. Dois exemplos amplamente conhecidos são SCP (Protocolo de cópia seguro) e SFTP (Protocolo de Transferência de Arquivos Seguro). O SFTP é um dos substituições mais populares para o protocolo FTP.

Como o FTP, o SFTP pode ser usado através de um modo de texto interativo ou executando comandos únicos. Este tutorial explica as duas técnicas.

Requisitos anteriores para usar o SFTP

O sftp protocolo requer ssh (Shell seguro) a ser instalado e executado no servidor que você deseja baixar arquivos ou fazer upload de arquivos para.

Se o seu servidor já tiver o SSH em execução, você pode pular para a próxima seção SFTP.

Nas distribuições Linux baseadas em Debian, o SSH pode ser instalado usando o apt Gerenciador de pacotes, conforme mostrado na captura de tela abaixo.

sudo apt install ssh

Nas distribuições Linux baseadas em redhat, o SSH pode ser instalado executando o seguinte comando:

Instalação DNF OpenSsh-Server

Depois de instalado, no servidor para o qual você deseja se conectar, inicie o serviço com o SystemCtl comando como mostrado abaixo (distribuições baseadas no Debian).

sudo systemctl start ssh

Para iniciar o serviço SSH em distribuições baseadas em redhat, execute:

sudo systemctl start sshd

Como usar sftp no modo interativo

Esta seção cobre o sftp Uso do modo interativo.

O único comando a ser executado para acessar o sftp servidor antes de obter o sftp prompt de comando é a solicitação de conexão, que tem a sintaxe semelhante a ssh e SCP.

O exemplo abaixo descreve a sintaxe correta, onde <Do utilizador> deve ser substituído por um usuário existente no servidor e <IP do servidor> com o host do servidor ou endereço IP.

sftp @

Na captura de tela abaixo, o usuário local Linux-Hint3 conecta -se como o usuário remoto Linuxhint para o servidor com endereço IP 192.168.0.103.

sftp [email protected]

Na primeira vez que o usuário se conecta ao servidor, ele será solicitado para confirmar a conexão. O usuário deve digitar “sim", imprensa DIGITAR e preencha a senha.

Depois que o usuário se conectar, o servidor retornará um sftp> prompt de comando onde o usuário pode executar o sftp comandos.

O sftp O modo interativo permite que os usuários interajam com os sistemas locais e remotos.

Os comandos linux normais impactam no servidor. Comandos começando com um “eu”São executados no sistema local.

Por exemplo, se o usuário executar o PWD comando, ele mostrará o diretório de trabalho atual remoto. Mas se o usuário executar o LPWD, ele mostrará o diretório atual local.

Por padrão, o diretório remoto local é o diretório inicial do usuário remoto, exceto alguns casos como o exemplo a seguir, no qual o usuário remoto não possui um diretório doméstico.

Na captura de tela abaixo, o PWD O comando é executado para mostrar o diretório de trabalho de corrente remota remota.

PWD

Então, LPWD é executado para mostrar o diretório de trabalho atual local.

LPWD

Como você pode ver na captura de tela acima, o diretório de trabalho de corrente remota é o diretório raiz (porque o Linuxhint4 O usuário remoto do usuário não possui um diretório doméstico) e o diretório de trabalho local é a casa local.

Se o usuário executar o ls (Lista) Comando, ele mostrará arquivos e diretórios remotos no diretório de trabalho atual.

ls

Executando lls (Lista local), o comando mostrará arquivos e diretórios no diretório de trabalho atual local.

Com o cd (Diretório de alterações) Comando, o usuário pode se mover entre diretórios remotos. Com o LCD (Comando Localmente Alterar Diretório), o usuário pode se mover entre diretórios locais, conforme mostrado na figura a seguir.

A sintaxe para baixar um arquivo do servidor é o seguinte:

pegar

Ou

pegar

No exemplo abaixo, o usuário baixa o arquivo nomeado arquivo10 e depois corre lls (Lista localmente) confirmando que o arquivo foi baixado corretamente.

Get File10

Para baixar diretórios, a sintaxe é quase a mesma, exceto pelo -r bandeira como mostrado abaixo.

Obtenha -r

Ou

Obtenha -r

No exemplo abaixo, o usuário baixa um diretório nomeado Diretório1.

obtenha -r diretório1

Para fazer upload de arquivos, a sintaxe é a seguinte:

colocar

No exemplo prático abaixo, o usuário carrega um arquivo nomeado <arquivo>

Para fazer upload de diretórios, basta adicionar o -r bandeira.

Put -r

Ou

Put -r

Os usuários podem remover arquivos também usando os mesmos comandos Linux. Por exemplo, para remover um arquivo, apenas execute:

rm

Para remover os diretórios, adicione o -r bandeira como mostrado abaixo.

Rm -r

O df -h O comando pode ser usado para mostrar o espaço total do servidor, usado e espaço disponível.

df -h

Os usuários também podem alterar as permissões de arquivo e diretório com o chmod comando como mostrado no exemplo abaixo.

Chmod +/-

Para sair da execução do modo interativo saída.

Saída

Outra maneira de sair do sftp sessão é a tchau comando.

Tchau

Usando sftp Com comandos únicos

Além disso, para o modo interativo, o SFTP pode ser usado com comandos únicos. Esta seção abrange como baixar e fazer upload de arquivos sem conexão anterior ao modo interativo.

A sintaxe para baixar arquivos é o seguinte:

sftp @:

No exemplo abaixo, o usuário faz login como o Linuxhint5 usuário e downloads o alvos.TXT arquivo remoto para o diretório local representado por um período.

sftp [email protected]: Alvos.TXT .

No exemplo prático abaixo, o usuário baixa o arquivo nomeado algo2.TXT Localizado no controle remoto testdir/ subdiretório para o local Área de Trabalho/ subdiretório.

sftp [email protected]: testdir/something2.txt ~/desktop

Como mostrado no exemplo abaixo, adicionando o -r Flag, o usuário pode baixar os diretórios recursivamente. No exemplo seguinte, o usuário baixa o testdir/ diretório para o local Área de Trabalho/ diretório.

sftp -r [email protected]: testdir/ ~/ desktop

Para fazer upload de arquivos executando um único comando com SFTP, aplique a sintaxe abaixo.

sftp @: <<< $'put '

No exemplo abaixo, o local File2 é carregado para o testdir/ diretório.

sftp [email protected]: testdir/ <<< $'put file2'

Para fazer upload de um diretório, adicione o -r opção usando a seguinte sintaxe

sftp -r @: <<< $'put '

No exemplo abaixo, o Área de Trabalho/ O diretório local é enviado no controle remoto perl5/ diretório.

sftp -r [email protected]: Perl5/ <<< $'put Desktop'

Aumentando a segurança do SFTP com a autenticação chave

Por padrão, as conexões SFTP são seguras e protegidas pelo protocolo SSH.

Mas um dos riscos é o método de login de senha padrão como conseqüência da fraqueza da senha, que inclui canais de troca de senhas ou compartilhamento de senha, processos. Em que, as senhas podem vazar, por exemplo, com um ataque MIM (homem no meio) seguido de uma descrição bem -sucedida.

Se o servidor não estiver configurado corretamente, o login de senha poderá expor o sistema a ataques de força bruta.

Para evitar isso, uma boa prática para redes de tamanho pequeno e médio é implementar a autenticação do SSH e desativar o login de senha.

Implementando a autenticação de chave SSH e desativando o login de senha

O sftp A segurança é concedida pelo protocolo SSH, cujo arquivo de configuração é /etc/ssh/sshd_config, Os usuários do arquivo precisam editar para ativar a autenticação chave e desativar o login de senha entre mais opções para reforçar a segurança.

No servidor, permitindo conexões de entrada, edite o /etc/ssh/sshd_config Arquivo com privilégios usando um editor de texto simples como Nano ou vi.

sudo nano/etc/ssh/sshd_config

Para ativar a autenticação chave, no computador do servidor, abra o /etc/ssh/sshd_config arquivo com privilégios 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 root.

O raiz O usuário está presente em todos os sistemas baseados em UNIX, incluindo Linux. É uma decisão ruim permitir fazer login com um nome de usuário com privilégios conhecidos por todos.

Não edite as opções para desativar o login de senha ainda, porque o processo de compartilhamento de chaves requer autenticação de senha antes que o sistema possa se autenticar com as chaves.

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

Distribuições Linux baseadas em Debian:

sudo systemctl reiniciar ssh

Distribuições Linux baseadas em Redhat:

sudo systemctl reiniciar ssh

No lado do cliente, solicitando as próximas conexões, gerar o par de teclas executando o ssh-keygen comando.

O processo solicitará a confirmação do diretório de chaves, pressione DIGITAR Para deixar o diretório local padrão (~/.ssh/id_rsa) ou o equivalente em sua distribuição Linux. O processo se oferecerá para incluir uma senha a ser necessária ao fazer login. Ao adicionar uma senha, a segurança pode ser aumentada. É recomendável digitar um e pressionar DIGITAR. Se você não quiser adicionar uma senha, basta pressionar DIGITAR sem digitá -lo.

ssh-keygen

Agora, o cliente deve compartilhar a chave com o servidor com o comando SSH-COPY-ID usando a sintaxe do exemplo a seguir.

SSH-COPY-ID [email protected]

Depois de compartilhar a chave, teste o método de autenticação principal conectando -se ao servidor.

Se a autenticação for bem -sucedida, o usuário fará login sem senha. Se o usuário definir uma senha, ele será solicitado em vez da senha, como no exemplo abaixo.

sftp @@

Depois de verificar a autenticação principal funciona, é altamente recomendável desativar o login de senha.

No lado do servidor, edite o arquivo /etc/ssh/sshd/config novamente com um editor de texto como Nano ou vi.

sudo nano/etc/ssh/sshd/config

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

Reinicie o serviço SSH.

sudo systemctl reiniciar sshd

Distribuições Linux baseadas em Redhat:

sudo systemctl reiniciar ssh

Agora, a segurança de autenticação é aumentada adequadamente.

Conclusão

O SFTP é uma ferramenta muito útil para compartilhar arquivos entre dispositivos e oferece dois modos simples. O protocolo SFTP pode ser instalado em todos os sistemas operacionais, oferecendo segurança, confiabilidade e velocidade. Alternativamente, o SCP O comando também oferece confiabilidade, velocidade e segurança e trabalhos através do protocolo SSH. Este segundo comando também foi profundamente explicado na dica do Linux (o link foi dado na introdução deste documento).