다른 콘솔에서 termux 사용자 환경에 액세스


9

최근에 놀라운 Termux 터미널 앱과 Linux 환경을 사용하기 시작했습니다 . 다양한 기능을 갖춘 터미널 유틸리티를 제공합니다. 연결시는 특히, 다른 콘솔에서 이러한 유틸리티에 액세스 할 수있는 것이 좋은 것 ssh또는 adb shell. 내 설정하여 일부 기능을 사용할 수 있도록 관리했습니다 PATH과 LD_LIBRARY_PATHTermux의 쉘에서 사용하는 것과 같은 값으로 환경 변수를하지만, 권한 문제가 있습니다 그것은 지저분한 것 같다.

Termux 세션에 참여할 수있는 방법이 있습니까? Termux는 ssh 서버 패키지를 제공하지 않는 것 같습니다. 해당 서버와 서버에서 부여한 ssh 세션이 해당 서버 인 경우에도 termux 사용자와 별도의 사용자로 실행되어 유사한 권한 문제가 발생합니다.

다른 콘솔에서 Termux 사용자 환경에 액세스 할 수있는 방법이 있습니까?

답변:


11

Termux는 클라이언트와 서버를 openssh모두 포함 하는 패키지를 제공 합니다.sshsshd

로 패키지를 설치 한 apt install openssh다음 서버를 시작하십시오 sshd.-기본적으로 포트 8022에서 실행되므로로 연결하면을 ssh -p 8022 DEVICE_IP사용하여 wifi IP 장치를 찾을 수 있습니다 ip addr list wlan0.

비밀번호 인증은 지원되지 않으므로 설정해야합니다 $HOME/.ssh/authorized_keys.

연결하면 환경 변수가 올바르게 설정된 일반 Termux 사용자로 실행됩니다.


1
와우, 그들은 패키지 설명에서 "원격 컴퓨터에 로그인하기위한 보안 쉘"이라고 언급해야합니다.
— intuited

sshd termux가 있고 포트 8022의 ip (컬럼 ifconfig.me에서 가져옴)를 사용하여 인터넷에 연결된 스마트 폰에서 ssh를 사용하여 원격 클라이언트에서 연결할 수없는 이유는 무엇입니까? 하나의 IP에 많은 클라이언트가 있습니까?
— user3123159

6
비밀번호 인증이 지원됩니다. passwdSSH 서버의 새 비밀번호를 설정 하려면 실행해야 합니다. 그러나 작동하지 않는 것은 사용자 이름입니다 (즉, 모든 사용자가 하나의 암호로 모든 사용자 이름으로 로그인 할 수 있음). AFAIK.
— MAChitgarha 2016 년


3

openssh다음을 실행하여 termux에 설치해야합니다.

pkg install openssh

그런 다음 ssh하려는 장치에서 공개 ID 키를 생성하십시오.

ssh-keygen

확인하고 내려 놓고 아무것도 바꾸고 나서

cat ~/.ssh/id_rsa.pub

출력을 서버에 복사하고 서버를 ~/.ssh/authorized_keys다시 시작하고 sshdssh를 시도하십시오.

오류가 발생하면 authorized_keys파일을 확인하고 공개 키가 모두 한 줄에 있는지 확인하십시오

Termux sshd는 비밀번호 로그인을 지원 하지 않기 때문에 위의 단계를 수행해야합니다 (IE, ssh user@ip_address비밀번호 입력).

당신 은를 사용하여 termux로 ssh해야합니다

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 사용자 @ 192.168.1.20).

ssh-copy-id와 사용자 사이에 공백이 있습니다

이제 비밀번호를 사용하지 않고 원격 호스트에 로그온 할 수 있습니다.

ssh user@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 user@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 파일

이 두 키 페어를 활성화

ChallengeResponse 인증 번호

Pubkey 인증 예


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

이를 통해 ANDROID 사용자 비밀번호없이 SSH 연결을 통해 ANDROID에서 DESKTOP으로 연결할 수 있습니다 (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

이렇게하면 ANDROID 사용자 비밀번호없이 SSH 연결을 통해 DESKTOP에서 ANDROID로 연결할 수 있습니다 (컴퓨터 사용자 비밀번호를 사용하려면이 명령을 건너 뛰십시오).

  1. 첫 번째 옵션 다른 콘솔에서 termux 사용자 환경에 액세스 다른 콘솔에서 termux 사용자 환경에 액세스

    scp your_desktop_ssh_user@YOUR.DESKTOP.IP.ADDRESS:~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
    
  2. 두 번째 옵션 authorized_keys 파일에 SSH 키를 어떻게 추가합니까? /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 blank passphrase이지만 여전히 요청 /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 ID를 사용하지 않아야 함)

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 /
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.