Acessando o ambiente do usuário termux de outros consoles

9

Recentemente, comecei a usar o incrível aplicativo de terminal Termux e o ambiente linux. Ele fornece uma variedade de utilitários de terminal com todas as funções. Seria ótimo poder acessar esses utilitários de outros consoles, especialmente quando conectados via sshou adb shell. Eu consegui disponibilizar algumas funcionalidades definindo minhas variáveis ​​de ambiente PATHe LD_LIBRARY_PATHos mesmos valores usados ​​pelo shell do Termux, mas há problemas de permissão e isso parece confuso.

Existe uma maneira de ssh para uma sessão Termux? O Termux parece não fornecer um pacote de servidor ssh. Mesmo que isso acontecesse, presumivelmente esse servidor e, portanto, a sessão ssh concedida por ele, seriam executados como um usuário separado do termux, resultando em problemas de permissões semelhantes.

Existe uma maneira suportada de acessar o ambiente de usuário Termux de outros consoles?

intuído
fonte

Respostas:

11

O Termux fornece o opensshpacote, que contém o sshcliente e o sshdservidor.

Instale o pacote com: apt install opensshe inicie o servidor com sshd- ele será executado na porta 8022 por padrão, então conecte-se a ele ssh -p 8022 DEVICE_IPe você poderá encontrar o ip wifi do dispositivo usando ip addr list wlan0.

A autenticação de senha não é suportada, portanto, você precisa configurar $HOME/.ssh/authorized_keys.

Após a conexão, você executará como o usuário normal do Termux com as variáveis ​​de ambiente configuradas corretamente.

fornwall
fonte
11
Uau, eles realmente devem mencionar isso na descrição do pacote, que apenas diz que é um "shell seguro para fazer login em uma máquina remota".
intuited
Por que não consigo conectar-me de um cliente remoto com ssh em um smartphone com sshd termux e conectado à Internet com um ip (que recebo do curl ifconfig.me) na porta 8022. O problema está relacionado ao provedor de Internet, que existem muitos clientes em um ip?
user3123159
5
A autenticação de senha é suportada. Você precisa executar passwdpara definir uma nova senha para o servidor SSH. No entanto, o que não funciona são nomes de usuário (ou seja, todos podem fazer login com todos os nomes de usuário com essa senha), AFAIK.
MAChitgarha
3

Você precisa instalar opensshno termux executando

pkg install openssh

e, no dispositivo do qual você deseja ssh, gere uma chave de identificação pública,

ssh-keygen

e apenas confirme e mude para baixo qualquer coisa, então faça

cat ~/.ssh/id_rsa.pub

copie a saída ~/.ssh/authorized_keyse reinicie o sshdservidor e tente ssh,

se você encontrar algum erro, verifique o authorized_keysarquivo e verifique se sua chave pública está em uma linha

Você deve executar as etapas acima porque o Termux sshdnão suporta logins de senhas (IE, e ssh user@ip_addressdepois digita uma senha)

você tem que usar ssh no termux usando

ssh termux-ip-here -p 8022
Zachary Martin Duncan
fonte
2

De joelhos e arco,

Ip_Address_Of_Remote_Host = 192.168.1.20

(Supondo que você tenha gerado uma chave na máquina termux usando

ssh-keygen -t rsa

Há um espaço entre ssh-keygen e -t e copiou a chave para Remote_Host usando os detalhes de logon dessa máquina

ssh-copy-id [email protected]).

Há um espaço entre ssh-copy-id e user

Agora você deve conseguir fazer logon no host remoto sem usar uma senha.

ssh [email protected]

A chave rsa gerada acima não é a chave que você coloca no arquivo allowed_keys na máquina termux.

O problema está recebendo o

id_rsa.pub

arquivo da sua máquina remota para o termux

~ / .ssh / chaves_autorizadas

arquivo no sistema local (telefone) a solução que usei foi scp, esse comando confunde muita gente, mas se visto da posição de que é apenas um comando cp, o misticismo desaparece

cp file_to_copy where_to_copy_file

Este comando é executado na máquina Termux (telefone)

scp [email protected]: /home/user/.ssh/id_rsa.pub ~ / .ssh / allowed_keys

Há um espaço entre id_rsa.pub e ~ /

O caminho para o diretório .ssh pode ser diferente, apenas verifique se é o caminho correto que você digita no comando acima.

Se você ainda tiver problemas para fazer logon, navegue até o

Arquivo /data/data/com.termux/files/usr/etc/ssh/sshd_config

Ative esses dois pares de chaves

ChallengeResponseAuthentication no

PubkeyAuthentication yes

Michael Hughes
fonte
Para qualquer pessoa com um pouco de entendimento do SSH, isso deve ser simples, pois aqueles que são novos nos caminhos do GNU / Linux são o que você precisa focar. Minha próxima parada é ver se o encaminhamento do X é possível, pois abre a possibilidade de usar os ternos de produtividade em sua área de trabalho, mas escrevendo para a máquina termux, deixe-me expandir, você poderá usar o software LibraOffice na máquina termux mas exibi-lo na área de trabalho sem atraso / latência, esse é o poder do GNU / Linux.
Michael Hughes
2

Estes são comandos do Android para rodar no Termux e configurar um cliente e servidor SSH, permitindo conectar-se da área de trabalho ao Android e vice-versa. Isso não cobre o servidor SSH e o cliente configurados no seu computador desktop.

Usando o servidor SSH https://termux.com/ssh.html

apt update
apt upgrade
apt install openssh

Aqui você pode criar uma senha para suas chaves e usá-la para conectar-se ao seu computador, se desejar. Caso contrário, deixe-os em branco e nenhuma senha será necessária, além da senha do computador do usuário do DESKTOP.

Como posso configurar o login SSH sem senha? /ubuntu/46930/how-can-i-set-up-password-less-ssh-login

ssh-keygen -b 4096 -t rsa

Isso permite que você se conecte do ANDROID ao seu DESKTOP pela conexão SSH sem a sua senha de usuário ANDROID (como as senhas não são suportadas pelo servidor termux sshd)

3 etapas para executar o login SSH sem senha usando o ssh-keygen & ssh-copy-id 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 [email protected]

Isso permite que você se conecte do seu DESKTOP à sua conexão ANDROID por SSH sem a sua senha de usuário ANDROID (se você quiser usar a senha de usuário do computador, pule este comando)

  1. Primeira opção Acessando o ambiente do usuário termux de outros consoles Acessando o ambiente do usuário termux de outros consoles

    scp [email protected]:~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
    
  2. Segunda opção Como adiciono chaves SSH ao arquivo allowed_keys? /ubuntu/46424/how-do-i-add-ssh-keys-to-authorized-keys-file

    cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
    

Scripts e notas para configurar e usar o SSHd no seu dispositivo Android usando o Termux https://github.com/tomhiggins/TermuxSSHDsetup

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

senha ssh em branco, mas ainda solicitando /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

Inicie o servidor executando sshd (que iniciará na porta padrão 8022) e execute logcat -s 'syslog:*'para visualizar a saída do log do processo do servidor. Execute pkill sshd para parar o servidor.

logcat -s 'syslog:*'
pkill sshd
sshd

Por fim, conectando-se um ao outro e vice-versa:

Conexão do ANDROID ao DESKTOP (o uso da senha do usuário do DESKTOP pode ser opcional)

ssh [email protected]

Conexão do seu DESKTOP ao seu ANDROID (não é necessário usar sua senha de usuário do ANDROID)

Como o Termux é um sistema de usuário único, você pode se conectar como qualquer usuário - independentemente do nome de usuário especificado, você fará o login como o único usuário do Termux disponível.

O binário Termux sshd não suporta logins de senhas, portanto, uma chave precisa ser autorizada ~/.ssh/authorized_keysantes da conexão. Use ssh-keygen para gerar um novo, se desejado.

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

(ANDROID) Se você ainda tiver problemas para fazer logon, navegue para arquivar e ative esses dois pares de teclas: /data/data/com.termux/files/usr/etc/ssh/sshd_config

ChallengeResponseAuthentication no
PubkeyAuthentication yes

Extra: bloqueio e desbloqueio do sistema de arquivos de somente leitura para leitura e gravação e vice-versa.

Como copiar arquivos para o diretório de dados de um emulador Android com 'adb push' https://alvinalexander.com/android/how-copy-files-android-device-emulator-adb-push-read-only-error

mount -o rw,remount rootfs /

Reverta as alterações depois de concluir as alterações!

cat /proc/mounts
mount -o ro,remount rootfs /
do utilizador
fonte