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?
Tags password dropbear chat-command