dbclient - efetue login sem digitar a senha manualmente

2

No meu roteador que executa o OpenWRT, eu preciso de um script que mantenha uma conexão SSH ativa a maior parte do tempo (pequenas interrupções são OK). Como o servidor SSH ao qual desejo me conectar cuida de várias conexões do mesmo usuário, basta colocar o script em cron config file.

Existem dois problemas:

  • Instalar coisas não é fácil (espaço muito limitado, muitos pacotes precisam ser compilados por mim antes mesmo de tentar se funciona).

  • O servidor ao qual desejo conectar não respeita as chaves RSA.

Como meu roteador usa o dropbear , tentei as seguintes estratégias:

  • definindo DROPBEAR_PASSWORD

  • definindo SSH_ASKPASS_ALWAYS e SSH_ASKPASS

  • definindo SSH_ASKPASS e DISPLAY

  • pequeno script chat - não faz ideia se está tudo bem, postando abaixo.

  • ssh login@machine < password-file &

Tudo em vão. Para mim, parece que a documentação não se aplica ao meu dbclient , apesar do fato de que eu tenho a versão mais recente (Dropbear v2014.65)

Aqui está tudo o que meu dbclient pode dizer sobre si mesmo:

 root@OpenWrt:~# dbclient -h
 Dropbear SSH client v2014.65 (link)
 Usage: dbclient [options] [user@]host[/port] [command]
 -p <remoteport>
 -l <username>
 -t    Allocate a pty
 -T    Don't allocate a pty
 -N    Don't run a remote command
 -f    Run in background after auth
 -y    Always accept remote host key if unknown
 -y -y Don't perform any remote host key checking (caution)
 -s    Request a subsystem (use by external sftp)
 -i <identityfile>   (multiple allowed)
 -A    Enable agent auth forwarding
 -L <[listenaddress:]listenport:remotehost:remoteport> Local port forwarding
 -g    Allow remote hosts to connect to forwarded ports
 -R <[listenaddress:]listenport:remotehost:remoteport> Remote port forwarding
 -W <receive_window_buffer> (default 24576, larger may be faster, max 1MB)
 -K <keepalive>  (0 is never, default 0)
 -I <idle_timeout>  (0 is never, default 0)
 -J <proxy_program> Use program pipe rather than TCP connection
 -c <cipher list> Specify preferred ciphers ('-c help' to list options)
 -m <MAC list> Specify preferred MACs for packet verification (or '-m help')
 -V    Version

chat script:

assword: mypassword123

ash script:

chat -f scriptfile &
ssh login@machine

O shell do meu roteador é ash .

Eu li que esse tipo de problema foi resolvido por expect , mas duvido que eu tenha espaço suficiente no meu roteador para suas dependências - atualmente eu tenho 300kB de espaço sobrando no meu roteador, mas eu poderia recuperar até 512kB .

Como faço para conectar?

    
por styrofoam fly 22.10.2014 / 19:56

0 respostas