他のコンソールからtermuxユーザー環境にアクセスする


9

最近、素晴らしいTermuxターミナルアプリとLinux環境を使い始めました。豊富な機能を備えた端末ユーティリティを提供します。他のコンソールからこれらのユーティリティにアクセスできると便利です。特に、sshまたはを介して接続する場合に便利ですadb shell。私は私の設定により、一部の機能が利用できるように管理しているPATHLD_LIBRARY_PATHTermuxのシェルで使用した値と同じ値に環境変数を、しかしそこにアクセス許可の問題があり、それが厄介なようです。

TermuxセッションにSSHで接続する方法はありますか?Termuxはsshサーバーパッケージを提供していないようです。たとえそうであっても、おそらくそのサーバー、つまりサーバーによって許可されたsshセッションは、termuxユーザーとは別のユーザーとして実行され、同様の権限の問題が発生します。

他のコンソールからTermuxユーザー環境にアクセスするためのサポートされている方法はありますか?

回答:


11

Termuxはopensshsshクライアントとsshdサーバーの両方を含むパッケージを提供します。

でパッケージをインストールしapt install openssh、次にサーバーを起動しますsshd-デフォルトではポート8022で実行されるため、で接続するとssh -p 8022 DEVICE_IP、を使用してデバイスのwifi ipを見つけることができますip addr list wlan0

パスワード認証はサポートされていないため、をセットアップする必要があります$HOME/.ssh/authorized_keys

接続後、環境変数を正しく設定した通常のTermuxユーザーとして実行します。


1
うわー、彼らはそれを「リモートマシンにログインするための安全なシェル」だとだけ言っているパッケージの説明でそれを本当に言及するべきです。
2016

sshd termuxがあり、ポート8022でip(curl ifconfig.meから取得)を使用してインターネットに接続されているスマートフォンで、sshを使用してリモートクライアントから接続できないのはなぜですか。問題はインターネットプロバイダーに関連していますか。 1つのIPに多くのクライアントがあること?
user3123159 2017

5
パスワード認証がサポートされています。passwdSSHサーバーの新しいパスワードを設定するには、を実行する必要があります。ただし、機能しないのはユーザー名です(つまり、誰もがすべてのユーザー名で1つのパスワードでログインできます)。
MAChitgarha

3

実行opensshしてtermux にインストールする必要があります

pkg install openssh

次に、sshを実行するデバイスで、公開IDキーを生成します。

ssh-keygen

何かを確認して変更し、それから

cat ~/.ssh/id_rsa.pub

出力をにコピーし~/.ssh/authorized_keyssshdサーバーを再起動し、sshを試行します。

エラーが発生した場合は、authorized_keysファイルを確認し、公開鍵がすべて1行になっていることを確認してください

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 user@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ファイル

これら2つのキーペアをアクティブ化

ChallengeResponseAuthenticationいいえ

PubkeyAuthenticationはい


SSHについて少し理解している人にとっては、GNU / Linuxパスに不慣れな人にとって、これは簡単に理解できるはずです。次のコールポートは、X転送が可能かどうかを確認することです。これにより、デスクトップで生産性スーツを使用できる可能性が広がりますが、termuxマシンに書き込むと、termuxマシンでLibraOfficeソフトウェアを使用できるようになります。しかし、遅延/遅延なしでデスクトップに表示されるのは、これがGNU / Linuxの力です。
マイケルヒューズ

2

これらは、Termuxで実行し、SSHクライアントとサーバーをセットアップして、デスクトップからAndroidに、またはその逆に接続できるようにするAndroidコマンドです。これには、デスクトップコンピューターに設定されたSSHサーバーとクライアントは含まれません。

SSHサーバーの使用 https://termux.com/ssh.html

apt update
apt upgrade
apt install openssh

ここでは、キーのパスワードを作成し、パスワードが必要な場合はそれを使用してコンピューターに接続できます。それ以外の場合は、空白のままにして、デスクトップユーザーのコンピューターパスワード以外のパスワードは不要です。

パスワードなしの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 https://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using- を使用してパスワードなしでSSHログインを実行する3つのステップssh-keygen-ssh-copy-id

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

これにより、ANDROIDユーザーパスワードなしで、SSH接続によってデスクトップからANDROIDに接続できます(コンピューターのユーザーパスワードを使用する場合は、このコマンドをスキップしてください)

  1. 最初のオプション 他のコンソールから termuxユーザー環境にアクセスする他のコンソールからtermuxユーザー環境にアクセスする

    scp your_desktop_ssh_user@YOUR.DESKTOP.IP.ADDRESS:~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
    
  2. 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を使用してAndroidデバイスでSSHdを設定および使用するためのスクリプトとメモ https://github.com/tomhiggins/TermuxSSHDsetup

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)それでもログオンできない場合は、ファイルに移動して、次の2つのキーペアをアクティブにします。 /data/data/com.termux/files/usr/etc/ssh/sshd_config

ChallengeResponseAuthentication no
PubkeyAuthentication yes

Extra:ファイルシステムを読み取り専用から読み取り/書き込みに、またはその逆にロックおよびロック解除します。

「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.