如何通过 ssh 访问我的 Ubuntu 手机?

如何通过 ssh 访问我的 Ubuntu 手机?

每当我尝试运行时apt-get install openssh-server都会收到以下错误:

root@ubuntu-phablet:/home/hablet# apt-get install openssh-server
W: Not using locking for read only lock file /var/lib/dpkg/lock
E: Unable to write to /var/cache/apt
E: The package lists or status file could not be parsed or opened.

答案1

随着官方最终版本的发布,Ubuntu for Phones 附带了“android-gadget-service”工具,您可以使用它来管理 adb、mtp、USB 网络共享和 ssh。

通过 USB 连接你的设备,启用开发者模式:

“系统设置->关于本机->开发者模式”

...然后运行(从您的电脑运行,确保手机屏幕已解锁,否则 adb 将拒绝让您进入):

adb shell android-gadget-service enable ssh

复制你的公钥拨打电话:

adb shell mkdir /home/phablet/.ssh
adb push ~/.ssh/id_rsa.pub /home/phablet/.ssh/authorized_keys
adb shell chown -R phablet.phablet /home/phablet/.ssh
adb shell chmod 700 /home/phablet/.ssh
adb shell chmod 600 /home/phablet/.ssh/authorized_keys

现在您可以在手机上查找您的 IP 并使用 ssh 进行连接:

adb shell ip addr show wlan0|grep inet
ssh phablet@<IP from above command>

答案2

激活 ssh 访问完全通过 wifi没有开发者模式在通电话,无需任何特殊工具在您的计算机上无需使用 USB

  1. 如果您还没有 ssh 密钥对,请ssh-keygen在您的计算机上输入并按照说明生成一个。
  2. 从 App Store 在手机上安装终端应用程序。
  3. 打开终端并输入(如果手机处于横向模式则更容易操作):

    sudo setprop persist.service.ssh true
    mkdir -pm700 ~/.ssh
    ip addr
    nc -l 1234 > ~/.ssh/authorized_keys
    

    (最后一个命令将挂起;这是预料之中的)

  4. 根据上述命令返回的内容,在终端中查找您手机的 IP 地址ip addr

  5. 在您的计算机上输入(192.0.2.1用上面的手机 IP 地址替换):

    nc 192.0.2.1 1234 < ~/.ssh/id_rsa.pub
    

    如果成功,手机终端上的最后一条命令将会成功。

  6. 在您的计算机上输入(再次192.0.2.1用上面的手机 IP 地址替换):

    ssh [email protected]
    
  7. 如果您的手机的 IP 地址发生变化,您将需要ip addr再次使用手机上的终端应用程序并相应地调整您的 ssh 命令。

答案3

OpenSSH 服务器目前(截至 2013 年 9 月 13 日)已预装Ubuntu Touch安装。但是,它也被禁用默认情况下. 您也不希望 SSH 从


您需要使用 USB 连接设备输入以下内容:

adb shell
su - phablet
sudo tee /etc/init/ssh.override < /dev/null

恢复为禁用

echo "manual" | sudo tee /etc/init/ssh.override

更新:(2014 年 3 月 9 日)

上述答案不再有效。

  • 截至 2014 年 3 月初,文件/etc/init/ssh.override仍然存在,更改其内容不允许 SSH(实际上是sshd守护进程(daemon)在启动时运行。

  • 最新版本(经过测试226,但可能更早)现在支持新的元标志持久服务.ssh,以允许 SSH(sshd守护进程)在启动时重新启动。

进入命令提示符(在设备上)

adb shell
su - phablet

启动 SSH,并设置标志

sudo service ssh start
sudo setprop persist.service.ssh true

重启设备

sudo reboot

SSH 守护程序应自动启动

sudo service ssh status

要禁用 SSH 自动启动,请更改标志:

sudo setprop persist.service.ssh false

答案4

安装 Ubuntu SDK 并在设备面板中单击“打开设备的 SSH 连接”。奖励:您将无法抗拒编写新的范围...

相关内容