在运行 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。
我该如何让它连接?