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: 124 ]

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

kernel Linux otimizado - Compilação e teste

Instalar e configurar o Nftables com exemplos básicos de configurações

Configuração do sistema, DHCP, compartilhamento e DNS no Debian Squeeze

Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla

Encapsulando BIND 9 e Apache 2 para obter maior segurança

Leitura recomendada

Xen - xl.conf - Configuração do Host

OpenLDAP com suporte ao MySQL

Configurando o Modem HSP56 Micromodem no Linux

Configurando o Fluxbox como WM padrão no Slackware 9.0

Fedora Core 1 :: Firewall e update

  
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