[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Auto Login com ssh ( sem troca de chaves )
From: |
Fernando Pereira |
Subject: |
Re: [shell-script] Auto Login com ssh ( sem troca de chaves ) |
Date: |
Tue, 6 Dec 2005 14:14:05 -0200 |
Nao funcionou na minha maquina nao. Estou utilizando o Debian Woody.
[]'
fernando pereira
On 12/6/05, Fabricio Lopes de Souza <address@hidden> wrote:
>
> Para quem queria , eu fiz um negocinho bem simples usando expect ,
> ainda estou deixando ele mais bunitinho e completo pra no final ser
> uma aplicacao que pra mim vai gerenciar a imensidao de ips de clientes
> que tenho que decorar :
>
> [code auto_ssh.sh]
> #!/bin/bash
>
> lista="/usr/auto_ssh/autossh.list"
> expect="/usr/auto_ssh/auto_ssh.exp"
> listar()
> {
> awk 'BEGIN {FS=";" ; printf
> "\n\n+------------------------------------------------------+\n"
> }{printf "| %-2s | %-15s | %-13s | %-13s |\n",$1,$2,$3,$5 } END {
> printf "+------------------------------------------------------+\n\n"}'
> $lista
>
> echo "Pressione qualquer tecla para continuar ..."
> read -n1
> }
>
> add()
> {
> clear
> echo "Digite o ip da maquina (max 16 digitos): "
> read -n 16 ip
> echo ""
> echo "Digite o Usuario da maquina (max 13 digitos): "
> read -n 13 user
> echo ""
> echo "Digite a Senha da maquina : "
> read -s pass
> echo ""
> echo "Digite a Descricao da maquina (max 13 digitos): "
> read -n 13 desc
> echo ""
> id=$(expr $(tail -n1 $lista | cut -d";" -f1) + 1)
> echo "$id;$ip;$user;$pass;$desc" >> $lista
> echo ""
> echo "$desc recebeu id : $id"
> echo ""
> echo "Usuario adicionado com sucesso !! "
> }
>
> delete()
> {
> clear
> listar
> echo "Digite o numero do registro que voce quer deletar"
> read del
> egrep -v ^$del "$lista" > "${lista}.tmp"
> mv "${lista}.tmp" "${lista}"
> echo ""
> echo "Registro de numero $del deletado com sucesso!"
> }
> connect()
> {
> listar
> echo ""
> echo "Digite o id da maquina a se conectar"
> read id
> ip=$(grep $id $lista | cut -d";" -f2)
> user=$(grep $id $lista | cut -d";" -f3)
> pass=$(grep $id $lista | cut -d";" -f4)
> # Aqui eh o mais importante , a chamada do expect que faz o login
> automatico , o resto eh soh enfeite .
> exec expect -c "set ip $ip ; set user $user ; set pass $pass" $expect
> }
> opcoes()
> {
> clear
> echo "--- OPCOES ---"
> echo ""
> echo ""
> echo "1) Listar "
> echo "2) Conectar "
> echo "3) Adicionar "
> echo "4) Apagar "
> echo "5) Sair"
> echo ""
> echo "Digite a opcao desejada : "
> read opc
>
> case $opc in
> 1) listar ; opcoes ;;
> 2) connect ; opcoes ;;
> 3) add ; opcoes;;
> 4) delete ; opcoes;;
> 5) exit 0 ;;
> *) echo "Opcao Invalida" ; sleep 2 ; opcoes ;;
> esac
> }
> opcoes
>
> [/code auto_ssh.sh]
>
> [code autossh.exp]
> #!/usr/bin/expect
>
> spawn ssh $ip -l $user
> expect "*password:"
> send "$pass\r"
> expect -re "Last login:*"
> send_user "\n\n"
> send_user
> "==========================================================\n==========================================================\n||
> Bem-Vindo ao auto-ssh ||\n"
> send_user "==========================================================\n"
> send_user "==========================================================\n"
> send_user "\n\n"
> # Esse interact e para o expect deixar vc usar o prompt e tambem ser
> possivel fazer alguns alias , binds e etc ... puramente ilustrativo os
> a seguir
> interact {
> "exit" {
> send_user "\nTecle \"s\" para sair e \"n\" para
> continuar\n"
> expect_user {
> "s" { send "exit\r"}
> "n" { send "\n" }
> }
> }
> "help" {
> send_user "\n\n========= OPCOES =========\n"
> send_user "exit -> Fecha a coneccao\n"
> send_user "help -> Mostra esse menu\n"
> send "\r\r\r"
> }
> }
> [/code autossh.exp]
>
> [code modelo auto_ssh.list]
> id;Ip;Usuario;Senha;Descricao\
> --;---------------;-------------;------------;-------------;
> 1;10.10.10.104;maria;joao;pedro
> 2;20.20.20.20;come;odeia;gosta
> 3;30.30.30.30;banana;maria;depepino
> [/code modelo auto_ssh.list]
>
>
> //-----------------------------------------------------------------------
>
> Aproveitando vai uma duvida
>
> Queria implementar um jeito de que ninguem conseguisse editar o
> arquivo auto_ssh.list , apenas o script , pois la vai ter todas
> senhas sem estar criptografadas ( seguranca = 0 huhu) , como? ;/
>
> Bom sei que nao deve estar taoooooooooooo bom o script , mas espero
> que ajude alguem , se alguem tiver sugestoes , mande :)
>
> Abracos
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
>
>
>
> *Yahoo! Grupos, um serviço oferecido por:* PUBLICIDADE
>
> <http://br.rd.yahoo.com/SIG=12fiudosc/M=384888.7585449.8468440.1588051/D=brclubs/S=2137111254:HM/Y=BR/EXP=1133876712/A=3154524/R=0/SIG=12igfl26t/*http://www.momentumquiz.com.br/index.php?md5ref=372BBEE98E9544bd8B2F9E87847EEEBE>
> ------------------------------
> *Links do Yahoo! Grupos*
>
> - Para visitar o site do seu grupo na web, acesse:
> http://br.groups.yahoo.com/group/shell-script/
>
> - Para sair deste grupo, envie um e-mail para:
> address@hidden<address@hidden?subject=Unsubscribe>
>
> - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
> Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>
>
[As partes desta mensagem que não continham texto foram removidas]