dbclient - 无需手动输入密码即可登录

dbclient - 无需手动输入密码即可登录

在运行 OpenWRT 的路由器上,我需要一个脚本来保持 SSH 连接大部分时间都处于活动状态(小的中断是可以的)。由于我想要连接的 SSH 服务器负责来自同一用户的多个连接,因此如果我将脚本放入cron配置文件中就足够了。

有两个问题:

  • 在那里安装东西并不容易(空间非常有限,在我尝试它是否有效之前,我需要编译许多软件包)。

  • 我想要连接的服务器不尊重 RSA 密钥。

由于我的路由器使用掉落熊,我尝试了以下策略:

  • 定义 DROPBEAR_PASSWORD

  • 定义 SSH_ASKPASS_ALWAYS 和 SSH_ASKPASS

  • 定义 SSH_ASKPASS 和 DISPLAY

  • 小的聊天脚本 - 不知道是否可以,将其发布在下面。

  • ssh login@machine < password-file &

一切都是徒劳。对我dbclient来说,尽管我有最新版本(Dropbear v2014.65),但该文档似乎不适用于我的

以下是我dbclient对自己能说的全部内容:

 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脚本:

assword: mypassword123

ash脚本:

chat -f scriptfile &
ssh login@machine

我的路由器的外壳是ash.

我读到这种问题已通过 解决expect,但我怀疑我的路由器上是否有足够的空间来满足其依赖性 - 目前我的路由器上还剩下 300kB 空间,但我可以以某种方式回收最多 512kB。

我该如何让它连接?

相关内容