从其他控制台访问termux用户环境


9

我最近开始使用令人惊叹的Termux终端应用程序和Linux环境。它提供了大量的全功能终端实用程序。能够从其他控制台访问这些实用程序非常好,尤其是通过ssh或连接时adb shell。通过将我的变量PATHLD_LIBRARY_PATH环境变量设置为Termux外壳程序使用的相同值,我设法提供了一些功能,但是存在权限问题,而且看起来很乱。

有没有办法进入Termux会话?Termux似乎没有提供ssh服务器软件包。即使这样做,也可能是该服务器以及由此授予的ssh会话将作为与termux用户不同的用户运行,从而导致类似的权限问题。

是否有从其他控制台访问Termux用户环境的受支持方法?

Answers:


11

Termux确实提供了该openssh软件包,其中包含ssh客户端和sshd服务器。

使用以下命令安装该软件包:apt install openssh,然后使用以下命令启动服务器sshd-默认情况下,它将在端口8022上运行,因此使用进行连接ssh -p 8022 DEVICE_IP,即可使用找到设备wifi ip ip addr list wlan0

不支持密码验证,因此您需要进行设置$HOME/.ssh/authorized_keys

连接后,您将以正常的Termux用户身份运行,并正确设置了环境变量。


1
哇,他们真的应该在软件包描述中提到它,它只是说这是“用于登录到远程计算机的安全外壳”。
直觉

为什么我无法在具有sshd termux并通过端口8022上的ip(我从curl ifconfig.me从curl获得)连接到Internet的智能手机上通过ssh从远程客户端进行连接。问题与互联网提供商有关,一个IP上有很多客户?
user3123159

5
支持密码验证。您需要运行passwd以设置SSH服务器的新密码。但是,无效的是用户名(即每个人都可以使用具有该密码的每个用户名登录),即AFAIK。
MAChitgarha

您可以使用每次启动sshd的推出wiki.termux.com/wiki/Termux:Boot
fuzzyTew

3

您需要openssh通过运行在termux中安装

pkg install openssh

然后,在您要从其SSH的设备上,生成一个公共ID密钥,

ssh-keygen

然后确认并向下更改任何内容,然后执行

cat ~/.ssh/id_rsa.pub

并将输出复制到~/.ssh/authorized_keys并重新启动sshd服务器,然后尝试ssh,

如果遇到任何错误,请检查authorized_keys文件并确保您的公钥全部在一行上

您必须执行上述步骤,因为Termux sshd不支持密码登录(即IE,ssh user@ip_address然后输入密码)

你必须使用ssh进入termux

ssh termux-ip-here -p 8022

2

在你的膝盖和弓上,

Ip_Address_Of_Remote_Host = 192.168.1.20

(假设您使用以下命令在termux机器上生成了密钥

ssh-keygen -t rsa

ssh-keygen和-t之间有一个空格,并使用该机器的登录详细信息将密钥复制到Remote_Host

ssh-copy-id user@192.168.1.20)。

ssh-copy-id和user之间有一个空格

现在,您无需使用密码即可登录到远程主机。

SSH用户@ 192.168.1.20

上面生成的rsa密钥不是您放入termux计算机上的authorized_keys文件中的密钥。

问题是

id_rsa.pub

文件从您的远程计算机到termux

〜/ .ssh / authorized_keys

我使用的解决方案是scp上的本地系统(电话)上的文件,此命令使很多人感到困惑,但是如果从只是cp命令的位置来看,它的神秘主义就消失了

cp file_to_copy where_to_copy_file

此命令从Termux机器(电话)运行

scp用户@ 192.168.1.20:/home/user/.ssh/id_rsa.pub〜/ .ssh / authorized_keys

id_rsa.pub和〜/之间有一个空格

您的.ssh目录的路径可能有所不同,只要确保它是您在上述命令中输入的正确路径即可。

如果您仍然无法登录,请导航至

/data/data/com.termux/files/usr/etc/ssh/sshd_config文件

激活这两个密钥对

ChallengeResponseAuthentication否

PubkeyAuthentication是


对于任何对SSH有一点了解的人,对于那些刚接触GNU / Linux路径的人来说,这应该是直截了当的。我的下一个电话端口是查看是否可以进行X转发,然后打开使用台式机上的生产力套装但写入termux机器的可能性,让我扩展一下,您将可以在termux机器上使用LibraOffice软件但是将它显示在桌面上却没有延迟/延迟,这就是GNU / Linux的功能。
Michael Hughes

2

这些是可在Termux上运行并设置SSH客户端和服务器的Android命令,允许从您的桌面连接到Android,反之亦然。这不包括台式计算机上设置的SSH服务器和客户端。

使用SSH服务器 https://termux.com/ssh.html

apt update
apt upgrade
apt install openssh

在这里,您可以为密钥创建一个密码,并在需要密码时将其用于连接计算机。否则,请将其保留为空白,并且不需要密码,除了您的DESKTOP用户计算机密码。

如何设置无密码的SSH登录? /ubuntu/46930/how-can-i-set-up-password-less-ssh-login

ssh-keygen -b 4096 -t rsa

这使您可以通过SSH连接从ANDROID连接到桌面,而无需输入ANDROID用户密码(因为termux sshd服务器不支持密码)

使用ssh-keygen和ssh-copy-id不使用密码执行SSH登录的3个步骤 https://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using- ssh-keygen-ssh-copy-id

ssh-copy-id -i ~/.ssh/id_rsa.pub your_desktop_ssh_user@YOUR.DESKTOP.IP.ADDRESS

这使您可以通过SSH连接从桌面到ANDROID,而无需使用ANDROID用户密码(如果要使用计算机的用户密码,请跳过此命令)

  1. 第一选择 从其他控制台 访问termux用户环境从其他控制台访问termux用户环境

    scp your_desktop_ssh_user@YOUR.DESKTOP.IP.ADDRESS:~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
    
  2. 第二个选项 如何将SSH密钥添加到authorized_keys文件? /ubuntu/46424/how-do-i-add-ssh-keys-to-authorized-keys-file

    cat ~/.ssh/id_rsa.pub | ssh your_desktop_ssh_user@YOUR.DESKTOP.IP.ADDRESS "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
    

使用Termux https://github.com/tomhiggins/TermuxSSHDsetup 在Android设备上设置和使用SSHd的脚本和注释

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ssh空白密码短语,但仍要求使用 /server/845623/ssh-blank-passphrase-but-still-asking-for-it

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa.pub
chmod 600 ~/.ssh/known_hosts
chmod 600 ~/.ssh/authorized_keys

通过执行sshd(将在默认端口8022上启动它)启动服务器,然后运行logcat -s 'syslog:*'以查看服务器进程的日志输出。执行pkill sshd停止服务器。

logcat -s 'syslog:*'
pkill sshd
sshd

最后,从一个连接到另一个,反之亦然:

从ANDROID连接到DESKTOP(使用DESKTOP用户密码可以是可选的)

ssh your_desktop_ssh_user@YOUR.DESKTOP.IP.ADDRESS

从您的桌面连接到您的ANDROID(一定不要使用您的ANDROID用户密码)

由于Termux是单用户系统,因此您可以以任何用户身份进行连接-不管指定的用户名如何,您都将以唯一的Termux用户身份登录。

Termux sshd二进制文件不支持密码登录,因此需要~/.ssh/authorized_keys在连接前授权密钥 。如果需要,请使用ssh-keygen生成一个新的密钥。

ssh -p 8022 -i ~/.ssh/id_rsa IP.OF.YOUR.ANDROID

(ANDROID)如果仍然无法登录,请导航至文件并激活这两个密钥对: /data/data/com.termux/files/usr/etc/ssh/sshd_config

ChallengeResponseAuthentication no
PubkeyAuthentication yes

附加:将文件系统从只读锁定到读写,反之亦然。

如何使用``adb push''将文件复制到Android模拟器的数据目录 https://alvinalexander.com/android/how-copy-files-android-device-emulator-adb-push-read-only-error

mount -o rw,remount rootfs /

完成更改后,将更改还原回去!

cat /proc/mounts
mount -o ro,remount rootfs /
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.