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

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

我有一台平板电脑,它通过 USB 连接到主机。(理想情况下,主机运行的是 Windows,但如果绝对必要,我也可以将主机切换为 Ubuntu。)

我希望能够在没有 RS-232、WiFi 或其他网络连接的情况下通过 SSH 进入设备。我需要哪些软件组合和设置才能实现这一点?

基本上,我希望能够拥有相当于的功能adb shell,但是当平板电脑运行纯 Ubuntu 而不是 Android 时。

该平板电脑恰好运行的是 9.04 版本,但如果需要的话我很乐意升级它。

答案1

因此,需要澄清的是,您想通过 USB 连接通过 ssh 从您的 PC(运行 Windows,但如果需要也可以运行 Ubuntu)连接到您的平板电脑(运行 Ubuntu)吗?

我之前没有听说过这样做,但在谷歌上搜索“ssh over USB”之类的东西会得到很多结果,人们会展示如何使用 WinSCP 或 Putty 将安装了 OpenSSH 的越狱 iPhone 连接到 Windows PC。以下是一些链接:

iFans - 使用 WinSCP 通过 USB 进行 SSH

OpenSSH,USB 代替 WiFi

Ubuntu 平板电脑可以轻松取代 iPhone,因为它已经安装了 OpenSSH,但我对将 SSH 连接隧道化到 USB 了解不多,只知道 SSH 使用端口 22。这两个教程使用一个名为 itunnel 的程序,但我对它一无所知。我去了 itunnel 的网站,上面说“iTunnel 是一个简单的 Linux 命令行程序,它通过 USB 电缆为越狱的 iPhone 提供 SSH 隧道化。我编写这个小工具是因为我厌倦了通过 WiFi 链接将 SSH 连接到我的 iPhone。SSH 代理、ssh 链接和 scp 都很好用。”因为它说“简单的 Linux 命令行程序”,所以我认为至少值得研究一下,看看它是否能用。

这是一个有趣的前景,我很想看看它会走向何方,但我觉得通过 USB 连接会比实际需要的工作多得多。我曾使用 Android 应用程序 Proxoid 将我的手机连接到我的笔记本电脑,使用命令进行无线连接,./adb forward tcp:8080 tcp:8080但隧道连接要求我在上网之前在浏览器上设置代理。如果不对选项进行大量调整,将 SSH 连接隧道化到 USB 可能会使您的应用程序难以连接。

如果您身边有一个旧路由器(例如 Linksys 无线 B 或 G 路由器),您可以使用它将平板电脑和 PC 连接在一起,然后通过 SSH 进入平板电脑,而无需处理隧道。

答案2

如果你想通过 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

相关内容