Trocar senha de usuário via SSH

Publicado por Raimundo Alves Portela (última atualização em 03/07/2012)

[ Hits: 15.512 ]

Homepage: http://portelanet.com

Download trocaSenhaSSH.sh




Script simples e direto, pode ser usado para fazer a troca em massa de senhas de qualquer usuário ( como o root ) em estações remotas.

Salve o arquivo, dê permissão de execução:

chmod +x trocaSenhaSSH.sh

Use-o:

./trocaSenhaSSH.sh usuario@host_or_ip senha_antiga senha_nova

Se quiseres usar em rotinas automatizadas para várias estações com mesmo usuário e senha, como o root, basta fazer um laço while ler o nome ou IP das estações de um arquivo:

while read ESTACAO
do
     ./trocaSenhaSSH.sh root@${ESTACAO} senha_antiga senha_nova
done < estacoes.txt

  



Esconder código-fonte

#!/usr/bin/expect -f
# tempo limite que o expect vai esperar por uma resposta:
set timeout 30
# configurando as variaveis:
set xHost [lindex $argv 0]
set senha_velha [lindex $argv 1]
set senha_nova [lindex $argv 2]

# enviando o comando ssh para o host
spawn ssh $xHost

# trocando a senha
expect "*password:*" {
   send "$senha_velha\r"
   expect "*#*"
    send "passwd\r"
    expect "*password:*"
    send "$senha_nova\r"
    expect "*password:*"
    send "$senha_nova\r"
}



Scripts recomendados

Fibonacci em bash shell

Backup de arquivos importantes e MySQL

Script simples para compactar e descompactar arquivos

Verifique seu IP externo (IP válido)

Script para média anual de aluno


  

Comentários
[1] Comentário enviado por brunols em 03/08/2017 - 15:40h

Fiz conforme explicado. Porém está dando erro. Segue abaixo:
[baugusto@server troca_senha]$ while read ESTACAO; do ./trocaSenhaSSH.sh user@${ESTACAO} qawsed 1q2w3e4r; done < estacoes.txt
spawn ssh user@server
Password: qawsed
[baugusto@server troca_senha]$ qawsed
-bash: qawsed: command not found


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts