Pular para o conteúdo

Executar Scripts Remotamente

Muitas vezes, em uma rede, laboratório ou em um cluster (ou até mesmo de um único computador para outro), é necessário rodar um script remotamente e temos de contornar a senha do SSH.
Com o presente artigo e os respectivos scripts, executaremos scripts remotamente.
Buckminster Buckminster
Hits: 2.215 Categoria: Linux Subcategoria: Configuração
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Parte 5: Bônus

SCRIPT copia-chave-distros.sh

#!/bin/bash

# ============================================
# Configura SSH e sudo NOPASSWD
# Compatível com Debian | Fedora | RHEL | Arch
# e derivados
# ============================================

# Antes de executar esse script, você deverá ter gerado a chave no servidor
# Exemplo:
# $ ssh-keygen -t ed25519

CHAVE_PUB="$HOME/.ssh/id_ed25519.pub"
USER_REMOTO="kluster"
SENHA="cluster"  # senha sudo do usuário remoto

if [ ! -f "$CHAVE_PUB" ]; then
    echo "Chave pública ED25519 não encontrada em $CHAVE_PUB"
    exit 1
fi

echo ">>> Processando nós..."

# Altere para tua faixa de IPs
for i in {4..8}; do
    NODE="192.168.1.$i"
    echo -n "Verificando conectividade com $NODE... "

    if ping -c 1 -W 1 "$NODE" &> /dev/null; then
        echo "OK"
        echo "Copiando chave para $NODE"
        ssh-copy-id -i "$CHAVE_PUB" "$USER_REMOTO@$NODE"
    else
        echo -e "\033[1;31mFalhou conectividade com $NODE!\033[0m"
        continue
    fi

    echo ">>> Configurando sudo NOPASSWD e !requiretty em $NODE..."

    # Cria arquivo sudoers remoto com senha via sudo -S
    ssh "$USER_REMOTO@$NODE" "
        echo '$SENHA' | sudo -S bash -c '
            cat > /etc/sudoers.d/$USER_REMOTO <>> Nó $NODE configurado com sucesso!\033[0m"
    echo
done
# Verde negrito: \033[1;32m
echo -e "\033[1;32m>>> Todos os nós processados com sucesso!\033[0m"
echo

Salve e saia.

Dê permissão de execução.

Lembre que o script copia-chave-distros.sh deve ser executado diretamente no terminal (./copia-chave.sh), pois se chamarmos ele por um dos outros scripts dará erro devido às senhas de sudo, caminhos de arquivos no servidor, um script remoto nunca pode copiar a chave do servidor por questões de segurança então o servidor SEMPRE precisa enviar a chave, quem deve fazer a conexão SSH é o script chamador, etc.

Caso os dois scripts, o chamado e o chamador, façam conexões SSH dará erro e/ou pedirá senha em cima de senha; isso não é incontornável no Linux, mas para o que se pretende não vale a pena o trabalho.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Introdução
   2. Seção do Script com Senha (OPÇÃO COM SENHA SSH)
   3. Seção do Script com Chave ( OPÇÃO COM CHAVE SSH)
   4. Como Utilizar
   5. Bônus

Como utilizar de forma correta os repositórios e pacotes Backports

Instalação e configuração do Chrony

Manual traduzido do Squid - Parte 2

Instalação do Comodo Antivirus para Linux (CAVL) resolvendo o problema de dependências

Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor

Monitorando No-Break no Ubuntu 12.04

Raid prático e definitivo

Entendendo o processo de boot

Instalando o Windows depois do Linux

Instalando o bbpager do Blackbox

#1 Comentário enviado por patrickernandes em 05/01/2026 - 14:31h
é um excelente trabalho!
mas acredito que para fins mais profissionais, a utilização de ansible seria mais tranquilo..
sucesso!!

---
Linux para suporte: http://sino.ernandes.info
#2 Comentário enviado por Buckminster em 16/01/2026 - 21:03h

[1] Comentário enviado por patrickernandes em 05/01/2026 - 14:31h

é um excelente trabalho!
mas acredito que para fins mais profissionais, a utilização de ansible seria mais tranquilo..
sucesso!!

---
Linux para suporte: http://sino.ernandes.info


Entendo teu ponto de vista, mas para o que eu pretendo o Ansible não satisfaz no momento.
Sucesso!

Contribuir com comentário

Entre na sua conta para comentar.