SSH e SCP · 5 min read · Nov 22, 2025
Usando shell seguro (SSH) para login e cópia segura (SCP) para transferência de dados no Linux
SSH significa shell seguro. É um protocolo de login remoto criptografado. Uma vez configurado em cada nó, pode ser usado para se comunicar com vários outros nós naquela rede.
Os principais benefícios do SSH são:
- O SSH usa o algoritmo de criptografia RSA para gerar chaves públicas e privadas, tornando a intrusão extremamente difícil.
- Como o SSH é um protocolo de login remoto, pode ser configurado em um laptop. Isso significa que você pode usar seu laptop para se conectar sem fio ao cluster Raspberry Pi.
- Como protocolos como SCP (Cópia Segura) e SFTP (Protocolo de Transferência de Arquivos Segura) funcionam sobre o SSH, você pode usá-los para transferir arquivos e pastas diretamente de um nó para outro.
- O SSH suporta login único. Isso significa que você só precisa inserir as credenciais na primeira vez que fizer login. A partir do segundo login em diante, não é necessário.
Vamos começar gerando chaves SSH. Para que o SSH seja usado, as chaves devem ser geradas entre dois ou mais nós para que a transferência de dados possa acontecer. Usamos o RSA para criptografia. Observe que em um nó, geramos as chaves e ele terá as chaves privadas ou secretas. O mesmo nó também gerará uma chave pública que será enviada a outros nós que desejam enviar dados para este nó. Execute os seguintes comandos no nó do qual você deseja enviar dados. Estou chamando este nó de “nó mestre” e os outros nós de “nós trabalhadores”.
cd ~
ssh-keygen --t rsa --C "raspberrypi@raspberrypi"Esses dois comandos definem um local padrão de /home/pi/_ssh/id_rsa para armazenar a chave.
Se solicitado por uma frase secreta, deixe a frase em branco. Uma vez feito isso, o próximo passo é enviar as chaves públicas para o nó trabalhador. Portanto, certifique-se de que o nó trabalhador esteja conectado à rede. Agora podemos configurar as chaves de criptografia no nó trabalhador, então o endereço IP usado é o endereço IP do nó trabalhador. Execute o seguinte comando no nó mestre.
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir .ssh;cat >> .ssh/authorized_keys"Uma vez que as chaves SSH são geradas, podemos fazer login em qualquer outro nó para o qual as chaves foram enviadas a partir do nó mestre e, para fazer isso, use o comando:
ssh [email protected]No comando acima, “pi” indica o usuário, por padrão todos os PIs usando Raspbian terão o usuário como “pi” e “192.168.3.216” é o IP do meu cliente. Você terá que alterá-lo para representar o endereço IP do seu PI cliente.
Isso pedirá uma senha. Uma vez que você fizer login, todos os comandos que você digitar serão executados naquele nó e não no mestre, mas a saída será exibida no próprio mestre. O SSH também pode ser usado para executar comandos diretamente em outros nós. Por exemplo, para alterar o nome do host de diferentes nós, use esses comandos em um formato como abaixo:
ssh [email protected] 'sudo echo "cilent001" | sudo nano /etc/hostname'
ssh [email protected] 'sudo echo "cilent002" | sudo nano /etc/hostname'
ssh [email protected] 'sudo echo "cilent003" | sudo nano /etc/hostname'Como mostrado acima, podemos usar o SSH para executar comandos em outros nós/PIs sem realmente fazer login neles. A seguir, está outro exemplo para desligar com segurança um nó na rede com o endereço IP 192.168.3.216
ssh [email protected] 'sudo poweroff'A figura a seguir mostra como o SSH é usado para fazer login em um nó trabalhador (192.168.3.216) e, a partir do nó trabalhador, retornar o terminal de controle ao nó mestre.

Como pode ser visto na figura acima, fazer login em um nó trabalhador acontece diretamente, ou seja, sem entrada de senha, exceto na primeira vez. Mas cada vez que o controle do terminal retorna ao nó mestre (192.168.3.215), as credenciais de login devem ser inseridas. Dessa forma, o mestre está sempre protegido contra ameaças externas.
Assim, após emitir comandos via SSH para outros nós, pode haver situações em que dados precisam ser enviados para vários nós. Se o número de nós for pequeno, podemos fazer login manualmente em cada nó, conectá-lo a um display e teclado e enviar arquivos. Mas essa é uma maneira altamente ineficiente de fazer isso quando o tamanho do cluster é grande. Uma maneira mais fácil seria usar o SCP para enviar arquivos. Instale o SCP usando o comando:
sudo apt-get install scpObserve que alguns sistemas operacionais Linux podem vir com o SCP pré-instalado, mas o Raspbian que estávamos usando não o tinha. O comando geral para enviar um único arquivo é:
scp (caminho do arquivo no dispositivo local) [email protected] (caminho do local remoto)Exemplo:
scp /pi/example.c [email protected] /pi/projectAqui, o dispositivo remoto para o qual enviar dados é reconhecido pelo endereço IP. Muitos arquivos em um diretório podem ser enviados usando a opção recursiva (-R). Por exemplo:
scp -r /pi/project [email protected] /pi/projectO comando acima transfere recursivamente todos os arquivos em /pi/project do host local para a pasta recursiva no host remoto identificado pelo endereço IP.
A imagem abaixo demonstra os vários comandos ssh e scp. Começa listando o conteúdo de sua pasta atual, depois chama “scp” recursivamente para transferir todos os arquivos na pasta atual para uma pasta em outro nó. Em seguida, faz login no outro nó e mostra que o scp transferiu com sucesso o conteúdo para o destino.

O SCP pode ser usado com algumas outras opções para tornar a transferência para atender a algumas de nossas condições. Aqui estão algumas opções:
- Podemos usar a opção “-p” para preservar os tempos de modificação, tempos de acesso e modos do arquivo original. Exemplo:
scp -p test.c [email protected]:~/Aqui, o tempo de acesso, modos de acesso e o último tempo de modificação do arquivo “test.c” serão preservados no nó de destino também. - O SCP permite que os arquivos sejam compactados antes de serem enviados pela rede para o destino. Isso é muito útil quando o(s) arquivo(s) é muito grande para ser transferido, e, portanto, a compactação aumentará a velocidade com que será enviado. Para fazer isso, usamos a opção “-C”. Exemplo:
scp -pC test.c [email protected]:~/Aqui podemos ver que várias opções podem ser usadas e ambas as suas funcionalidades serão aplicadas ao comando. - A programação de soquetes envolve o envio e recebimento de dados através de portas e o SCP pode ser usado para enviar dados através de portas específicas para o host remoto. Isso pode ser feito usando a opção “-P”. Exemplo:
scp -P 21938 test.c [email protected]:~/Aqui, a porta usada para enviar dados é 1938. - Pode haver casos em que você não gostaria de saber o status da transferência de arquivos, como na imagem acima. Faz sentido desligar o status da transferência quando há uma grande quantidade de arquivos. Podemos fazer isso usando a opção “-q”. Exemplo:
scp -rq ~/files [email protected]:~/filesAqui, o conteúdo da pasta chamada files é transferido para a pasta files em outro nó, mas a barra de status e as mensagens de depuração estão todas desativadas, ou seja, não são exibidas.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.