如何通过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 :
- 如果您还没有ssh密钥对,请在计算机上键入
ssh-keygen
,然后按照说明生成密码对。 - 从App Store在手机上安装终端应用程序。
-
打开终端并键入(手机横向显示时更容易):
sudo setprop persist.service.ssh true mkdir -pm700 ~/.ssh ip addr nc -l 1234 > ~/.ssh/authorized_keys
(最后一个命令将挂起;这是预期的)
-
在上面的
ip addr
命令返回的终端中查找手机的IP地址。 -
在您的计算机上,键入(用上面的手机IP地址替换
192.0.2.1
):nc 192.0.2.1 1234 < ~/.ssh/id_rsa.pub
如果成功,手机终端上的最后一个命令现在将成功。
-
在您的计算机上,键入(再次使用上面的手机IP地址替换
192.0.2.1
):ssh phablet@192.0.2.1
-
如果手机的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