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.

[ Hits: 128 ]

Por: Buckminster em 02/01/2026


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.
Página anterior    

Páginas do artigo
   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
Outros artigos deste autor

Instalar OBS Studio e VLC no Slackware 15

IPv6, DNSv6 e DHCPv6

Instalação do PostgreSQL, Apache2 e PHP8 no Debian Buster 10 e no Stretch 9

Como um monte de letras de um código fonte transforma-se em voltagens?

Permissões do Linux

Leitura recomendada

Habilitando DDNS com BIND e DHCP remoto

Apache Mod_Proxy como Front-End de acesso e balanceamento de diversas aplicações web

Configurando o Slackware 12

Instalação e uso do Superkaramba

Configuração de rede mesh em Ap Router Pro

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts