Mengakses lingkungan pengguna termux dari konsol lain

9

Saya baru-baru ini mulai menggunakan aplikasi terminal Termux yang menakjubkan dan lingkungan linux. Ini memberikan banyak utilitas terminal fungsi penuh. Akan sangat bagus untuk dapat mengakses utilitas ini dari konsol lain, terutama ketika terhubung melalui sshatau adb shell. Saya telah berhasil membuat beberapa fungsionalitas tersedia dengan mengatur variabel saya PATHdan LD_LIBRARY_PATHlingkungan ke nilai yang sama yang digunakan oleh shell Termux, tetapi ada masalah izin dan tampaknya berantakan.

Apakah ada cara untuk melakukan sesi Termux? Termux tampaknya tidak menyediakan paket server ssh. Bahkan jika itu terjadi, mungkin server itu, dan dengan demikian sesi ssh yang diberikan olehnya, akan berjalan sebagai pengguna yang terpisah dari pengguna termux, yang mengakibatkan masalah izin yang serupa.

Apakah ada cara yang didukung untuk mengakses lingkungan pengguna Termux dari konsol lain?

intuisi
sumber

Jawaban:

11

Termux memang menyediakan opensshpaket, yang berisi sshklien dan sshdserver.

Instal paket dengan:, apt install opensshkemudian mulai server dengan sshd- itu akan berjalan pada port 8022 secara default, jadi sambungkan dengannya ssh -p 8022 DEVICE_IP, dan Anda dapat menemukan perangkat wifi ip menggunakan ip addr list wlan0.

Otentikasi kata sandi tidak didukung, jadi Anda perlu mengatur $HOME/.ssh/authorized_keys.

Setelah terhubung, Anda akan berjalan sebagai pengguna Termux normal dengan pengaturan variabel lingkungan dengan benar.

fornwall
sumber
1
Wow, mereka harus benar-benar menyebutkan itu dalam deskripsi paket, yang hanya mengatakan bahwa itu adalah "Secure shell untuk masuk ke mesin jarak jauh".
intuited
Mengapa saya tidak dapat terhubung dari klien jarak jauh dengan ssh pada smartphone yang memiliki termsh sshd dan terhubung ke internet dengan ip (yang saya dapatkan dari curl ifconfig.me) pada port 8022. Apakah masalah terkait dengan penyedia internet, bahwa ada banyak klien di satu ip?
user3123159
5
Otentikasi kata sandi didukung. Anda perlu menjalankan passwduntuk menetapkan kata sandi baru untuk server SSH Anda. Namun, yang tidak berfungsi adalah nama pengguna (yaitu setiap orang dapat masuk dengan setiap nama pengguna dengan satu kata sandi itu), AFAIK.
MAChitgarha
3

Anda perlu menginstal opensshdi termux dengan menjalankan

pkg install openssh

dan kemudian, pada perangkat yang ingin Anda ssh, buat Kunci ID Publik,

ssh-keygen

dan cukup konfirmasi dan turunkan perubahan apa pun, lalu lakukan

cat ~/.ssh/id_rsa.pub

dan salin output ke ~/.ssh/authorized_keysdan restart sshdserver dan coba ssh,

jika Anda menemukan kesalahan, periksa authorized_keysfile dan pastikan kunci publik Anda semuanya dalam satu baris

Anda harus melakukan langkah-langkah di atas karena Termux sshdtidak mendukung login kata sandi, (yaitu, ssh user@ip_addresskemudian memasukkan kata sandi)

Anda harus ssh ke termux menggunakan

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

Berlutut dan membungkuk,

Ip_Address_Of_Remote_Host = 192.168.1.20

(Dengan asumsi Anda telah menghasilkan kunci pada mesin termux menggunakan

ssh-keygen -t rsa

Ada ruang di antara ssh-keygen dan -t dan menyalin kunci ke Remote_Host menggunakan rincian log-on mesin itu

ssh-copy-id [email protected]).

Ada ruang antara ssh-copy-id dan pengguna

Anda sekarang dapat masuk ke host jarak jauh tanpa menggunakan kata sandi.

ssh [email protected]

Kunci rsa yang dibuat di atas bukanlah kunci yang Anda tempatkan ke file Authorized_key pada mesin termux.

Masalahnya adalah mendapatkan

id_rsa.pub

file dari mesin Remote Anda ke termux

~ / .ssh / official_keys

file pada sistem lokal (telepon) solusi yang saya gunakan adalah scp, perintah ini membingungkan banyak orang tetapi jika dilihat dari posisi itu hanya perintah cp itu mistik menghilang.

cp file_to_copy where_to_copy_file

Perintah ini dijalankan dari mesin Termux (telepon)

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

Ada spasi di antara id_rsa.pub dan ~ /

Path ke direktori .ssh Anda mungkin berbeda, pastikan itu adalah jalur yang benar yang Anda masukkan ke dalam perintah di atas.

Jika Anda masih mengalami masalah saat masuk ke menu navigasi

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

Aktifkan kedua pasangan tombol ini

ChallengeResponseAuthentication no

PubkeyAuthentication ya

Michael Hughes
sumber
Bagi siapa pun dengan sedikit pemahaman tentang SSH, ini harus langsung bagi mereka yang baru mengenal jalur GNU / Linux adalah apa yang perlu Anda fokuskan. Port of call saya berikutnya adalah untuk melihat apakah penerusan X dimungkinkan untuk kemudian membuka kemungkinan menggunakan setelan produktivitas di desktop Anda tetapi menulis ke mesin termux, izinkan saya memperluas Anda akan dapat menggunakan perangkat lunak LibraOffice pada mesin termux tetapi telah ditampilkan pada desktop tanpa lagging / latency ini adalah kekuatan GNU / Linux.
Michael Hughes
2

Ini adalah perintah Android untuk dijalankan pada Termux dan menyiapkan klien dan server SSH, yang memungkinkan untuk terhubung dari desktop Anda ke Android Anda dan sebaliknya. Ini tidak mencakup server SSH dan klien yang diatur di komputer desktop Anda.

Menggunakan server SSH https://termux.com/ssh.html

apt update
apt upgrade
apt install openssh

Di sini Anda dapat membuat kata sandi untuk kunci Anda dan menggunakannya untuk terhubung ke komputer Anda, jika Anda suka kata sandi. Jika tidak, biarkan kosong dan tidak ada kata sandi yang diperlukan, selain kata sandi komputer pengguna DESKTOP Anda.

Bagaimana saya bisa mengatur login SSH-less-password? /ubuntu/46930/how-can-i-set-up-password-less-ssh-login

ssh-keygen -b 4096 -t rsa

Ini memungkinkan Anda untuk terhubung dari ANDROID ke DESKTOP Anda dengan koneksi SSH tanpa kata sandi pengguna ANDROID Anda (karena kata sandi tidak didukung oleh server termux sshd)

3 Langkah untuk Melakukan Login SSH Tanpa Kata Sandi Menggunakan 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]

Ini memungkinkan Anda untuk terhubung dari DESKTOP Anda ke ANDROID Anda dengan koneksi SSH tanpa kata sandi pengguna ANDROID Anda (jika Anda ingin menggunakan kata sandi pengguna komputer Anda, lewati perintah ini)

  1. Opsi Pertama Mengakses lingkungan pengguna termux dari konsol lain Mengakses lingkungan pengguna termux dari konsol lain

    scp [email protected]:~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
    
  2. Opsi Kedua Bagaimana cara menambahkan Kunci SSH ke file otor_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"
    

Skrip dan catatan untuk mengatur dan menggunakan SSHd di perangkat Android Anda menggunakan Termux https://github.com/tomhiggins/TermuxSSHDsetup

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

ssh kata sandi kosong tetapi masih memintanya /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

Mulai server dengan menjalankan sshd (yang akan memulainya pada port default 8022) dan jalankan logcat -s 'syslog:*'untuk melihat output log dari proses server. Jalankan pkill sshd untuk menghentikan server.

logcat -s 'syslog:*'
pkill sshd
sshd

Akhirnya, menghubungkan dari satu ke yang lain dan sebaliknya:

Menghubungkan dari ANDROID Anda ke DESKTOP Anda (penggunaan kata sandi pengguna DESKTOP Anda bisa opsional)

ssh [email protected]

Menghubungkan dari DESKTOP Anda ke ANDROID Anda (tidak boleh menggunakan kata sandi pengguna ANDROID Anda)

Karena Termux adalah sistem satu pengguna, Anda dapat terhubung sebagai pengguna mana pun - terlepas dari nama pengguna yang ditentukan, Anda akan masuk sebagai satu-satunya pengguna Termux yang tersedia.

Biner Termux sshd tidak mendukung login kata sandi, jadi kunci perlu diotorisasi ~/.ssh/authorized_keyssebelum menghubungkan. Gunakan ssh-keygen untuk menghasilkan yang baru jika diinginkan.

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

(ANDROID) Jika Anda masih mengalami masalah saat masuk, navigasikan ke file dan aktifkan dua pasangan kunci ini: /data/data/com.termux/files/usr/etc/ssh/sshd_config

ChallengeResponseAuthentication no
PubkeyAuthentication yes

Ekstra: Mengunci dan membuka kunci sistem file dari read-only hingga read-write dan sebaliknya.

Cara menyalin file ke direktori data emulator Android dengan 'adb push' https://alvinalexander.com/android/how-copy-files-android-device-emulator-adb-push-read-only-error

mount -o rw,remount rootfs /

Kembalikan perubahan kembali setelah menyelesaikan perubahan!

cat /proc/mounts
mount -o ro,remount rootfs /
pengguna
sumber