shell-script-pt
[Top][All Lists]
Advanced

[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]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]