我可以通过USB连接方式ssh(进入移动设备)吗?

我有一台带有USB连接到主机计算机的平板电脑。(理想情况下,主机运行Windows,但如果绝对必要,我也可以将主机切换为Ubuntu。)
我希望能够在没有RS-232、WiFi或其他网络连接的情况下通过SSH登录设备。我需要什么软件组合和设置才能实现这一目标?
基本上,我希望能够在平板电脑运行纯Ubuntu而不是Android时拥有类似于adb shell的功能。 这台平板电脑恰好运行着9.04版本,但如果需要,我很乐意升级它。

如果你从Ubuntu连接到平板电脑,lsusb的输出是什么? - aquaherd
哪种类型的设备? - Ciro Santilli OurBigBook.com
2个回答

所以,为了澄清一下,您想通过USB连接从运行Ubuntu的平板电脑连接到您的PC(运行Windows,但如果必要的话也可以运行Ubuntu),然后使用ssh进行连接?
我之前没有听说过这样做的方法,但是在谷歌上搜索"ssh over USB"会得到很多结果,其中有人展示了如何使用WinSCP或Putty将安装了OpenSSH的越狱iPhone连接到Windows PC。以下是一些链接: iFans - 使用WinSCP通过USB进行SSH连接 OpenSSH,使用USB而不是WiFi Ubuntu平板电脑可能很容易取代iPhone,因为它已经预装了OpenSSH,但我对通过USB进行SSH连接的隧道不太了解,除了知道SSH使用22号端口。这两个教程使用一个叫做itunnel的程序,但我对它一无所知。我去itunnel的网站上看到它说:“iTunnel是一个简单的Linux命令行程序,可以通过USB电缆将SSH隧道连接到越狱的iPhone上。我写了这个小工具,因为我厌倦了通过WiFi链接SSH到我的iPhone。SSH代理、SSH链接和SCP都非常好用。”因为它说是“简单的Linux命令行程序”,我认为至少值得调查一下是否能够使用。
这是一个有趣的前景,我想看看它会走向何方,但我觉得通过USB连接会增加许多不必要的工作量。我曾经使用安卓应用程序Proxoid将手机与笔记本电脑连接起来,以实现通过./adb forward tcp:8080 tcp:8080命令进行绑定的无线连接,但隧道连接需要我在浏览器上设置代理才能上网。将SSH连接隧道化到USB可能会导致您的应用程序在没有进行一些复杂的选项调整的情况下难以连接。
如果你有一个闲置的旧路由器(比如Linksys无线B或G路由器),你可以直接使用它将平板电脑和个人电脑连接起来,而不需要费心进行隧道设置,就能通过SSH登录到平板电脑。

谢谢,我看到了所有这些相同的谷歌链接。正如你所说,这似乎是可能的。我希望有人能提供一个真正的答案来展示如何做到。Wi-Fi 是第二选择(在此之后是一个可怕的通过将 RS-232 连接到平板电脑并通过它进行连接的方法)。 - Phrogz

以防万一,如果你想要通过ssh登录到Android:

下载一个cyanogenmod 7 rom,并从/system/xbin/目录中提取dropbear、dropbearkey和dropbearconvert。Dropbear是sshd的轻量级替代品。将它们复制到手机上,移动到/system/xbin/目录,并赋予它们与存档中相同的权限和所有权。

如果你的桌面上还没有ssh密钥,请为其生成一个: ssh-keygen -t rsa
将公钥复制到手机上: adb push .ssh/id_rsa.pub /sdcard/authorized_keys

通过adb shell在手机上设置你的密钥:

mkdir /data/dropbear  
chmod 755 /data/dropbear  
mkdir /data/dropbear/.ssh  
chmod 700 /data/dropbear/.ssh  
mv /sdcard/authorized_keys /data/dropbear/.ssh/  
chown root.root /data/dropbear/.ssh/authorized_keys  
chmod 600 /data/dropbear/.ssh/authorized_keys  
dropbearkey -t rsa -f /data/dropbear/dropbear_rsa_host_key  
dropbearkey -t dss -f /data/dropbear/dropbear_dss_host_key 

在手机上的终端或使用adb shell运行dropbear:dropbear -s -F -v -p 2222 从您的桌面连接:ssh -i .ssh/id_rsa -p 2222 -l root 127.0.0.1

作为手动安装dropbear的替代方案,它也包含在开源应用程序SimpleSSHD中。 - tanius
1在最后一个命令(“从您的桌面连接”)中,IP地址不应该是本地主机(“127.0.0.1”),因为您没有设置端口转发到本地主机。它应该使用Android设备的IP地址。 - tanius