如何通过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. 

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

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

“系统设置 – >关于此电话 – >开发者模式”

…并运行(从您的PC,确保手机屏幕解锁,否则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@ 

完全通过wifi激活ssh访问,手机上没有开发人员模式 ,计算机上没有任何特殊工具 且不使用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 addr命令返回的终端中查找手机的IP地址。

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

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

    如果成功,手机终端上的最后一个命令现在将成功。

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

     ssh phablet@192.0.2.1 
  7. 如果手机的IP地址发生变化,您需要再次在手机的终端应用中使用ip addr ,并相应地调整您的ssh命令。

OpenSSH服务器现在(截至2013年9月13日)预先加载了Ubuntu Touch安装。 但是, 默认情况下也会禁用它。 您也不希望从root操作SSH。


您需要使用USB连接键入以下内容:

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

要恢复为已禁用

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

更新:(09-Mar-2014)

上面的答案不再是最新的。

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

  • 最近的版本(经过226测试,但可能更早)现在支持新的元标记persist.service.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 

尝试使其可写并重新启动:

 touch /userdata/.writable_image 

编辑:当你构建它时使用--pending开关更新到phablet-flash

编辑: 系统映像现在是部署和更新Ubuntu Touch的推荐方法

安装Ubuntu SDK并单击设备面板中的“打开SSH连接执行设备”。 额外奖励:你不会拒绝写一个新的范围……

我刚刚发现了一种更快(快速和肮脏)的方式(注意:它不安全!)

1)安装终端应用程序并打开它

2)切换到root

 sudo su 

(输入你的屏幕锁定密码)

2)输入以下命令:

 echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config echo "AllowUsers phablet" >> /etc/ssh/sshd_config /usr/sbin/sshd 

现在您的ssh服务器正在运行,它将接受您的屏幕锁定代码作为密码! 注意:现在很容易暴力! 请立即更改您的设置 (现在,您可以通过ssh从PC连接后以舒适的方式进行设置)。

由于您手动运行sshd,因此不再应用/etc/init/ssh.override文件…

所以从你的电脑连接:

 ssh phablet@xxxx 

其中xxxx是手机的IP地址,您可以通过输入找到

 ifconfig 

在手机的终端。

请享用!

更新 :可能是,更新后,sshd无法启动,因为它无法打开主机密钥,然后只需重新生成它们:

 /usr/bin/ssh-keygen -A 

如果由于缺少/ var / run / sshd而失败,只需创建它:

 mkdir /var/run/sshd chmod 755 /var/run/sshd