Login
Login

Como copiar arquivos via SSH

Como copiar arquivos via SSH
Hostman Team
Redator técnico
O sistema Linux Conexão SSH
10.10.2025
Reading time: 5 min

O protocolo SSH (Secure Shell) é um protocolo de rede para gerenciamento remoto de sistemas operacionais via linha de comando. É amplamente considerado o padrão para acesso remoto a máquinas *nix. Ele permite login seguro em um servidor, execução remota de comandos, gerenciamento de arquivos (criar, excluir, copiar etc.) e muito mais. A maioria dos provedores de nuvem exige SSH para acessar seus serviços. Neste artigo, veremos como copiar arquivos via SSH em sistemas Windows e Linux.

Como o SSH funciona

O SSH pode transmitir com segurança qualquer tipo de dado (áudio, vídeo, dados de protocolo) por meio de um canal criptografado. Diferente de protocolos obsoletos e inseguros como Telnet e rlogin, o SSH garante confidencialidade e autenticidade — essenciais para a comunicação na Internet.

Veja como é estabelecida uma conexão segura entre cliente e servidor:

    1. Conexão TCP: Por padrão, o servidor escuta na porta 22. Ambas as partes compartilham uma lista de algoritmos compatíveis (compressão, criptografia, troca de chaves) e concordam em quais usar.

    2. Autenticação: Para evitar falsificação de identidade, ambas as partes verificam suas identidades usando criptografia assimétrica (pares de chaves pública/privada). O servidor é autenticado primeiro. Na primeira conexão, o cliente exibe um aviso com detalhes do servidor. As chaves dos servidores confiáveis são armazenadas em /home/<username>/.ssh/known_hosts.

    3. Geração de chave: Depois que o servidor é verificado, ambas as partes geram uma chave simétrica para criptografar todos os dados trocados.

    4. Autenticação do usuário: É feita usando senha ou chave pública enviada pelo cliente e armazenada no servidor em /home/<username>/.ssh/authorized_keys.

A implementação mais popular no Linux é o OpenSSH, que vem pré-instalado na maioria das distribuições (Ubuntu, Debian, RHEL etc.). No Windows, clientes como PuTTY ou MobaXterm são usados. Desde o Windows 10 e Server 2019, as ferramentas OpenSSH também estão disponíveis nativamente.

Copiando arquivos via SSH

Duas ferramentas principais para copiar arquivos no Linux são scp e sftp. Ambas vêm com o OpenSSH.

O SSH suporta duas versões de protocolo: 1 e 2. O OpenSSH suporta ambas, mas a versão 1 raramente é usada.

Configurar autocompletar

Para ativar o autocompletar com Tab ao usar scp, configure a autenticação por chave pública:

Gerar um par de chaves:

ssh-keygen

Saída esperada:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):

Por padrão, as chaves (id_rsa para privada e id_rsa.pub para pública) são salvas em ~/.ssh/.

Copiar a chave pública para a máquina remota:

ssh-copy-id [username]@[ip-address]

Após inserir a senha do usuário, uma mensagem confirmará que a chave foi adicionada.

Secure Copy (SCP)

Para transferências pequenas (por exemplo, arquivos de configuração), scp é ideal.

Copiar de local para remoto:

scp test.txt user@192.168.1.29:/home/user/

Copiar vários arquivos:

scp test1.txt test2.txt user@192.168.1.29:/home/user/

Copiar de remoto para local:

scp user@192.168.1.29:/home/user/test.txt ~/

Copiar diretórios:

scp -r testdir user@192.168.1.29:/home/user/

Copiar de remoto para remoto:

scp gendo@192.168.1.25:/home/gendo/test.txt user@192.168.1.29:/home/user/

Secure FTP (SFTP)

SFTP é outra ferramenta incluída no OpenSSH. Desde OpenSSH 9.0, scp usa SFTP por padrão em vez do protocolo SCP/RCP.

Ao contrário do FTP clássico, sftp transmite dados criptografados por meio de um túnel seguro. Não é necessário um servidor FTP separado.

Exemplo de uso:

sftp misato@192.168.1.29

sftp> ls
sftp> lcd testdir/
sftp> get test.txt
sftp> bye

Gerenciadores de arquivos gráficos como Midnight Commander e Nautilus também usam sftp. No Nautilus, o servidor remoto aparece como uma pasta local, por exemplo user@ip.

Image1

Copying Files Over SSH on Windows

No Windows, use a ferramenta de linha de comando pscp do PuTTY para copiar arquivos.

Copiar para o servidor:

pscp C:\server\test.txt misato@192.168.1.29:/home/misato/

Copiar do servidor:

pscp misato@192.168.1.29:/home/misato/test.txt C:\file.txt

Listar arquivos no servidor remoto:

pscp -ls user@192.168.1.29:/home/misato

Usar aspas para caminhos com espaços:

pscp "C:\dir\bad file name.txt" misato@192.168.1.29:/home/misato/

Exibir ajuda:

pscp

Conclusão

Vimos como copiar arquivos de e para um servidor usando o protocolo seguro SSH. Se você trabalha com servidores em nuvem, entender SSH é essencial — é o método padrão de acesso remoto a máquinas *nix e uma parte fundamental do trabalho diário de DevOps e administração de sistemas.

O sistema Linux Conexão SSH
10.10.2025
Reading time: 5 min

Semelhante

O sistema Linux

Criando links simbólicos no Linux: um tutorial passo a passo

Symlinks, também conhecidos como links simbólicos, funcionam como atalhos no mundo Linux. Eles permitem criar um novo nome (ou link) que aponta para outro arquivo, diretório ou qualquer objeto dentro do sistema de arquivos. Sua principal vantagem é reduzir redundâncias, evitando a necessidade de manter várias cópias do mesmo arquivo. Quando você usa um symlink, alterações feitas no arquivo original são refletidas em todos os seus links simbólicos. Isso elimina a necessidade de atualizar diversas cópias manualmente. Além disso, symlinks oferecem uma forma flexível de gerenciar permissões de acesso. Por exemplo, usuários diferentes, com diretórios apontando para subconjuntos de arquivos, podem limitar a visibilidade além do que as permissões padrão permitiriam. Em essência, symlinks são indispensáveis para uma gestão eficiente de arquivos e organização, simplificando atualizações e controle de acesso em sistemas complexos. Requisitos Para seguir este tutorial, você vai precisar de: Um servidor em nuvem, máquina virtual ou computador rodando um sistema operacional Linux. Na Hostman, você pode implantar um servidor com Ubuntu, CentOS ou Debian em menos de um minuto. Criando links simbólicos com o comando ln O comando ln é usado para criar links simbólicos no Linux. Siga estas etapas: Abra uma janela do terminal. Navegue até o diretório onde deseja criar o link simbólico. Use a seguinte sintaxe para criar um symlink: ln -s /path/to/source /path/to/symlink Substitua /path/to/source pelo caminho real do arquivo ou diretório que deseja vincular e /path/to/symlink pelo nome/local desejado para o link simbólico. Entendendo as opções do comando ln O comando ln oferece várias opções para personalizar a criação de symlinks:  -s: Cria um link simbólico.  -f: Sobrescreve um symlink existente.  -n: Trata o destino do symlink como um arquivo comum. Explore essas opções conforme suas necessidades de criação de links. Criando links simbólicos para arquivos Para criar um symlink para um arquivo, use o comando ln com a opção -s. Aqui está um exemplo de como criar um link simbólico para um arquivo usando o comando ln. O comando abaixo cria um link simbólico chamado symlink_file no diretório atual, apontando para o arquivo /path/to/file: ln -s /path/to/file /path/to/symlink_file Substitua /path/to/file pelo caminho real do arquivo e /path/to/symlink_file pelo nome desejado do symlink. Neste exemplo, o caminho é absoluto. Você também pode criar um symlink usando um caminho relativo. No entanto, lembre-se de que, para que o symlink funcione corretamente, qualquer processo que o acesse deve primeiro definir o diretório de trabalho correto; caso contrário, o link pode parecer quebrado. Criando links simbólicos para diretórios Você pode usar o comando ln para criar um link simbólico que aponta para um diretório. Por exemplo, o comando abaixo cria um symlink chamado symlink_directory no diretório atual, apontando para /path/to/directory: ln -s /path/to/directory /path/to/symlink_directory Esse comando cria um link simbólico chamado symlink_directory na sua localização atual, vinculando-o ao diretório /path/to/directory. Sobrescrever um link simbólico à força Você pode usar a opção -f com o comando ln. Por exemplo, se o caminho em um symlink estiver incorreto devido a um erro de digitação ou se o destino tiver sido movido, você pode atualizar o link assim: ln -sf /path/to/new-reference-dir symlink_directory Usar a opção -f garante que o conteúdo do symlink antigo seja substituído pelo novo destino. Ela também remove automaticamente quaisquer arquivos ou symlinks conflitantes. Se você tentar criar um symlink sem -f e o nome já estiver em uso, o comando falhará. Verificando links simbólicos Você pode exibir o conteúdo de um symlink usando o comando ls -l no Linux: ls -l symlink_directory A saída mostrará o symlink e seu destino: symlink_file -> /path/to/reference_file Aqui, symlink_file é o nome do link simbólico, e ele aponta para o arquivo /path/to/reference_file. ls -l /path/to/symlink A saída mostrará o symlink e seu destino. Boas práticas para links simbólicos Use nomes descritivos para os links simbólicos. Evite links circulares para prevenir confusão no sistema. Atualize os symlinks se o local de destino mudar. Casos de uso para links simbólicos Gerenciamento de arquivos de configuração: Vincular arquivos de configuração entre sistemas. Controle de versão: Vincular simbolicamente bibliotecas comuns para projetos de desenvolvimento. Backup de dados: Criar symlinks para diretórios de backup. Possíveis problemas e soluções Problemas de permissão: Certifique-se de que as permissões corretas estejam definidas para a origem e o symlink. Links quebrados: Atualize symlinks se arquivos de destino forem movidos ou excluídos. Links entre sistemas de arquivos: Symlinks podem não funcionar entre sistemas de arquivos diferentes. Conclusão Symlinks são valiosos para otimizar o gerenciamento de arquivos e a manutenção do sistema. Eles simplificam atualizações entre várias aplicações que compartilham um arquivo comum, reduzindo a complexidade de manutenção. Também oferecem uma alternativa a diretórios como /etc, que geralmente exigem acesso root para modificar arquivos. Desenvolvedores acham os symlinks úteis para alternar facilmente entre arquivos locais de teste e versões de produção. Seguindo este tutorial, você dominou o processo de criação de links simbólicos no Linux. Aproveite os symlinks para uma gestão eficiente de arquivos e maior personalização.
15 December 2025 · 6 min to read
O sistema Linux

Comandos systemctl reiniciar, recarregar e parar um serviço

For Linux operating systems, systemctl is a system and service manager that is mostly used to manage services and their configurations. It is a component of systemd, which also handles other system-level functions, process management, and system boot. Maintaining a reliable and effective system requires knowing how to manage services. restart, reload, and stop are among the most significant commands; each has a distinct function in managing services.  This tutorial will go through these commands in details, covering their syntax, use cases, and real-world examples to help users grasp them and manage systems more successfully.  Entendendo o gerenciamento de serviços com systemctl A maioria das distribuições modernas de Linux utiliza o systemctl como a principal ferramenta de administração de serviços do sistema, um componente essencial para manter um ambiente Linux estável. O systemctl, parte da suíte systemd, ajuda administradores a habilitar, desabilitar, monitorar e controlar serviços. Dominar o systemctl pode melhorar a resposta, o desempenho e a confiabilidade do sistema. Um serviço — ou um conjunto de processos que operam em segundo plano para fornecer funções do sistema, como rede, compartilhamento de arquivos ou hospedagem de aplicações — é chamado de serviço no ambiente Linux. Embora esses serviços possam ser controlados manualmente, eles normalmente são iniciados automaticamente quando o sistema é inicializado. Serviços críticos, como servidores web, bancos de dados e ferramentas de rede, precisam ser gerenciados corretamente para garantir sua disponibilidade e funcionamento eficiente. Administradores podem reduzir o tempo de inatividade recarregando ou reiniciando serviços usando os comandos do systemctl, sem interferir nas atividades do sistema. Garanta que os serviços estejam disponíveis após uma reinicialização usando os comandos enable/disable para automatizar sua inicialização. Monitore o status dos serviços e logs para diagnosticar rapidamente problemas. Devido à sua versatilidade, o systemctl é uma ferramenta indispensável para a administração de serviços em qualquer sistema Linux. Iniciar um serviço usando systemctl Iniciar um serviço no Linux com systemctl é uma tarefa simples, porém essencial, para controlar diferentes processos em segundo plano, como servidores web, bancos de dados ou serviços de rede. Um serviço deve ser iniciado pelo usuário e autorizado a executar sua função designada. Use o comando abaixo para iniciar um serviço. sudo systemctl start <nome_do_servico> Onde: sudo: concede os privilégios administrativos necessários para iniciar o serviço. systemctl: o comando do Linux para gerenciar serviços. start: o comando que instrui o sistema a iniciar o serviço. <nome_do_servico>: o nome do serviço (por exemplo: apache2, nginx, ssh) que o usuário deseja iniciar. Exemplo: sudo systemctl start apache2 Esse comando instrui o serviço Apache a iniciar. Se o serviço já estiver em execução, nada visível acontecerá. Caso não esteja em execução, o comando o iniciará. Reiniciar um serviço usando systemctl Para administradores de sistemas Linux, reiniciar um serviço usando o systemctl é fundamental, pois o serviço é interrompido e iniciado novamente. Isso é especialmente útil ao solucionar problemas de serviços ou após alterações de configuração ou atualizações de software. Reiniciar um serviço garante que ele utilize a configuração ou o código mais recente. Use o comando abaixo para reiniciar um serviço. sudo systemctl restart <nome_do_servico> Exemplo: sudo systemctl restart apache2 Esse comando primeiro interrompe o serviço Apache e depois o reinicia. Isso é especialmente útil quando o usuário modificou o arquivo de configuração e deseja aplicar as alterações. Reiniciar um serviço pode ajudar a resolver problemas temporários ou liberar recursos. Quando um serviço não está funcionando corretamente, reiniciá-lo geralmente resolve o problema. Recarregar a configuração de um serviço com systemctl No Linux, um serviço pode aplicar novas alterações de configuração sem precisar ser completamente interrompido e reiniciado, utilizando o comando de recarga do systemctl. Isso é especialmente útil quando pequenas alterações são feitas na configuração e não se deseja interromper o funcionamento do serviço. Use o comando abaixo para recarregar um serviço. sudo systemctl reload <nome_do_servico> Exemplo: sudo systemctl reload apache2 Esse comando aplica as alterações feitas no arquivo de configuração do Apache sem reiniciar completamente o servidor, minimizando interrupções para os usuários. Recarregar é uma opção mais suave do que reiniciar, pois não encerra conexões ativas nem processos em execução. Parar serviços com systemctl Execute o comando abaixo para parar um serviço em execução. Se um serviço estiver configurado para iniciar automaticamente na inicialização do sistema, pará-lo interromperá apenas suas operações atuais, mas não impedirá que ele seja iniciado novamente na próxima reinicialização. Esse simples comando systemctl stop permite ao usuário encerrar processos sem alterar o comportamento de inicialização, sendo útil para o gerenciamento de serviços. sudo systemctl stop <nome_do_servico> Exemplo: sudo systemctl stop apache2 Verificar o status de serviços usando systemctl Monitorar e verificar se os serviços estão funcionando corretamente é uma das tarefas mais importantes da administração de sistemas Linux. Com o comando systemctl, é possível visualizar informações detalhadas sobre o status de um serviço, como se ele está ativo, inativo ou se apresentou algum problema. Após reiniciar ou recarregar um serviço, verificar seu status ajuda a confirmar que ele voltou a funcionar como esperado. Use o comando abaixo para visualizar o status atual de um serviço. sudo systemctl status <nome_do_servico> Exemplo: sudo systemctl status apache2 O comando status fornece informações detalhadas sobre o serviço, geralmente incluindo: Active State:  mostra se o serviço está em execução (active), parado ou em falha. Loaded State:  indica se o arquivo de unidade (arquivo de configuração) do serviço está carregado na memória. Main PID:  mostra o ID do processo principal do serviço. Recent Logs: exibe as entradas de log mais recentes relacionadas ao serviço para auxiliar na solução de problemas. Solução de problemas comuns Diversos problemas podem ocorrer ao gerenciar serviços no Linux usando o systemctl, incluindo encerramentos inesperados, falhas ao iniciar ou erros de configuração. Resolver esses problemas de forma eficaz é essencial para manter o desempenho e a estabilidade do sistema. A seguir estão os problemas mais comuns e os passos recomendados para solucioná-los. O comando sudo systemctl start retorna um erro ou não inicia o serviço conforme esperado. Execute sudo systemctl status <nome_do_servico> para obter detalhes sobre a causa da falha do serviço. Utilize journalctl para visualizar os logs do sistema relacionados ao serviço e identificar possíveis problemas subjacentes. O comando systemctl status mostra a causa da falha. Procure mensagens como "Main PID exited" ou "Job for <nome_do_servico> failed" para entender o problema. Muitas vezes, reiniciar o serviço pode corrigir falhas temporárias. Um serviço não inicia automaticamente após reiniciar o sistema. Certifique-se de que o serviço está configurado para iniciar automaticamente. Execute sudo systemctl is-enabled. Se ele não estiver habilitado, ative-o com systemctl enable <nome_do_servico>. O serviço não inicia ou não executa ações devido a erros de permissão. Verifique se o serviço possui permissões adequadas para acessar os arquivos e diretórios necessários. Por exemplo: servidores web precisam de permissão de leitura para arquivos de configuração e diretórios web. Confirme também que o serviço está sendo executado com o usuário ou grupo correto. Alguns serviços precisam ser executados por um usuário específico definido no arquivo de unidade. O serviço inicia com configuração incorreta ou alterações feitas no arquivo de unidade não são aplicadas. Execute sudo systemctl daemon-reload após modificar um arquivo de unidade para recarregar a gestão do systemd. Certifique-se de que o arquivo de unidade corresponde à configuração esperada e está localizado em /lib/systemd/system/ ou /etc/systemd/system/. Esses procedimentos podem ajudar a resolver a maioria dos problemas comuns relacionados a serviços gerenciados pelo systemctl no Linux. A estabilidade e a integridade do sistema podem ser preservadas revisando regularmente os logs e o status dos serviços. Conclusão Em conclusão, administradores de sistemas devem estar familiarizados com o uso do systemctl para gerenciar serviços no Linux. Ele oferece um conjunto de ferramentas avançadas para controlar, monitorar e solucionar problemas de serviços de forma eficiente. Compreender os comandos fundamentais — incluindo recarregar, parar, reiniciar e verificar o status de serviços — permite garantir que as funções essenciais do sistema operem corretamente. Seja ao gerenciar serviços de rede, bancos de dados ou servidores web, dominar o systemctl ajuda a manter um ambiente Linux estável e eficiente. Além disso, a habilidade de resolver problemas comuns, como falhas de serviços, erros de permissão ou problemas de configuração, contribui para reduzir o tempo de inatividade e preservar a confiabilidade do sistema. A integração do systemctl com o journalctl possibilita uma análise completa de logs, facilitando diagnósticos rápidos e soluções eficazes. Você pode testar nosso VPS Linux confiável para seus projetos. 
11 December 2025 · 9 min to read
O sistema Linux

Como listar usuários no Linux

Administrar e proteger um sistema Linux exige monitoramento e gerenciamento cuidadoso dos usuários. Saber quem está utilizando o sistema e quais ações estão sendo executadas é fundamental para manter a segurança e a eficiência de servidores e computadores Linux. Este guia apresenta vários métodos para verificar usuários no Linux, incluindo o uso do terminal e da interface gráfica (especificamente, o Gnome). Os métodos descritos ajudam você a obter informações sobre contas de usuário, suas atividades, histórico de login e muito mais. Existem diversas maneiras de listar contas de usuário. A seguir, mostramos como acessar a lista de usuários do Linux pelo terminal e pela interface gráfica. Terminal Nesta seção, exploraremos métodos para exibir usuários no Linux usando a linha de comando. Arquivo /etc/passwd O arquivo /etc/passwd contém informações sobre todos os usuários registrados no sistema. Cada linha representa uma conta de usuário e inclui: nome, senha, UID (ID do usuário), GID (ID do grupo), informações adicionais (GECOS), diretório home e shell de login. Para visualizar seu conteúdo: cat /etc/passwd Você também pode abrir o arquivo em um editor de texto como nano ou vim. Se você estiver usando um servidor em nuvem da Hostman com um usuário não administrador, o arquivo pode parecer assim: (Exemplo visual no documento original) As senhas aparecem como x por motivos de segurança. Elas são armazenadas no arquivo /etc/shadow. Para exibir apenas os nomes dos usuários: sed 's/:.*//' /etc/passwd Comando who O comando who mostra uma lista dos usuários ativos, incluindo nome, terminal, data e hora de login e, quando disponível, o endereço IP: who Se você precisa apenas dos nomes dos usuários atualmente conectados: users Diferença: who → fornece informações detalhadas users → lista apenas os nomes Comando w O comando w mostra uma visão detalhada dos usuários ativos, incluindo: atividades atuais, tempo de login, carga do sistema. Execute: w Comando last O comando last exibe o histórico de logins, incluindo datas, horários e origem das conexões. É útil para auditoria e segurança: last Comando lastlog O comando lastlog mostra o último login de cada usuário: lastlog Interface gráfica Para quem prefere trabalhar com interface gráfica, veja como verificar usuários em sistemas com o ambiente Gnome. Ferramentas semelhantes não são mais suportadas no KDE Plasma. Existem pelo menos duas formas de acessar a lista de usuários no Gnome. Menu “Usuários” Abra Configurações pelo menu do sistema. Procure e abra a aba Usuários. Clique em Desbloquear (canto superior direito) para liberar todas as funções. Na parte superior, você verá a lista de usuários existentes; abaixo, os detalhes e configurações de cada conta. Utilitário “Users” Você também pode instalar o utilitário adicional gnome-system-tools: sudo apt install gnome-system-tools (Em outras distribuições use dnf, pacman, etc.) Depois de instalado: Abra o menu de busca. Digite Usuários. Selecione o utilitário recém-instalado. A janela permitirá visualizar e editar contas, tipos de usuário, senhas e outras configurações. Resumo Se você usa o terminal, estes comandos são úteis: /etc/passwd — lista todas as contas existentes who — lista usuários ativos com detalhes w — mostra atividades atuais dos usuários last — mostra o histórico de logins lastlog — exibe o último login de cada usuário Se utiliza Linux com Gnome, você pode usar: o menu Usuários, ou o utilitário gnome-system-tools. Entender quem acessa seu sistema e quais ações executam ajuda a detectar problemas rapidamente e melhora a administração do sistema. Escolha o método que mais se adapta às suas necessidades.
11 December 2025 · 4 min to read

Tem perguntas,
comentários ou preocupações?

Nossos profissionais estão disponíveis para ajudá-lo a qualquer momento,
seja para assistência ou apenas se você não souber por onde começar.
Envie-nos um e-mail
Hostman's Support