iSHアプリで私のiPadでLinuxを使用しようとしていますが、私のユーザー名が見つからないようですが、whoamiを実行すると常に「root」が返されます。私はipadで私のIPを見つけるためにいくつかのコマンドを試しましたが、うまくいかなかったので、別のコンピュータでsshする方法やipadでsshする方法について混乱しました。
たとえば、ifconfig -aを試しましたが、/proc/net/dev: No such file or Directoryが表示されました。
curl ifconfig.meはパブリックIPで動作しますが、SSH用のホストIPが必要ですが、表示されません。
他の例:
Mathewss-iPad:~# hostname -I
hostname: unrecognized option: I
BusyBox v1.31.1 () multi-call binary.
Usage: hostname [OPTIONS] [HOSTNAME | -F FILE]
Get or set hostname or DNS domain name
-s Short
-i Addresses for the hostname
-d DNS domain name
-f Fully qualified domain name
-F FILE Use FILE's content as hostname
問題:次の理由により、どのデバイスにもSSH経由で接続できません。
- 見つからないホスト名は「root」です。
- ホストのIPアドレスを取得できません。
- しかし、Linux APKインストールパッケージ、フォルダの作成、ディレクトリの変更などのすべてが正常です。
答え1
免責事項1:私はこれらすべてを次の仕様のiPhone 8 Plusで実行しました。
- iOS 15.4
- アルパイン 13.4
- バージョン 1.2.3
免責事項2:アプリケーションがバックグラウンドでクローズまたは実行されている場合、SSHサーバーはiSH上で実行されません。
設定 - iSHをローカルネットワークのSSHサーバーに設定する
iSHを初めてインストールすると、rootとして起動します。新しいユーザーを作成するには:adduser -g "your full name"と入力し、パスワードを入力します。
ルートとしてecho 'yourpassword' |パスワード
rootではなく、新しいユーザーにdoas(たとえばsudo)権限を付与したいとします。 rootとして... apk add doas - 次の行を使用して/etc/doas.confファイルを変更します。あなたのユーザー名 - アプリケーションを閉じて再度開き、ユーザーとしてログインします。
- または、Permit persist:wheel行のコメントを外すこともできます。
- 次に、ホイールグループ
adduserwheelにユーザーを追加します。
ホストキーを生成するには、rootとして次のコマンドを実行します。ssh-keygen -A
この時点で/etc/ssh/sshd_configルートログインを防ぐためのファイルです。次の行があることを確認してください(コメントなし)PermitRootLogin no PubkeyAuthentication yes PasswordAuthentication yes
免責事項3:root以外のユーザーとしてログインできない場合は、PermitRootLoginをyesに設定し、次の方法で問題を解決してください。
ssh username@localhost -vvv
Alpine は、各新しい iSH セッションの sshd サービスの開始を管理する init プログラムとして openrc を使用します。
openrcをダウンロードする必要がある場合:apk add openrc
root / sudoユーザーとしてrc-update add /usr/sbin/sshd defaultを実行します。
その後、rc-service sshd が起動します。
sshdデーモンがrc-status defaultを実行していることを確認してください。
IPを探すには、iPadのWi-Fi設定に移動し、ネットワーク名の横にある「i」情報源をタップしてIPv4アドレスを探します。
今クライアントデバイスで
ssh iSHusername@iSHipaddress
より安全なアクセスのために鍵ベースの認証を設定できます。 SSH-keygen -t ed25519
_enter an absolute path to your client .ssh folder and a passphrase (optional)_
- Copy the public key to your host machine.
ssh-copy-id -i *pathtopubkey* iSHusername@iSHipaddress
- Reload sshd service
rc-service sshd reload
サービスがrc-status defaultを実行していることを確認してください。
_you should do this everytime you make changes to the config files_
SSHクライアントとしてのiSH(localhost)
iPhone設定でiSHがローカルネットワークにアクセスできることを確認し、ssh hostuser@hostipaddress
設定 - WANからSSH(オープンインターネット)
_ルータでのポート転送の設定
- それは次のとおりです。
- ソースポート:22(変更されていない場合はクライアントデバイスのポート)
- 転送ポート:443(多数のルータがこのポートを介したSSHトラフィックを許可する)
- 宛先ポート:22(Sshサーバーがリッスンするポート)
- それは次のとおりです。
必要に応じて、サーバーコンピュータでファイアウォールを設定します。
- UFWから
- sudo ufw は、clientipaddress からすべてのアプリケーションへの OpenSSH を許可します。
- sudo ufw リロード
- UFWから
動的ポート転送を使用した接続 ssh -D 443ユーザー名@ルーティングアドレス
コマンドを再実行し、
-vvv
失敗した場合のデバッグを選択します。
源泉: https://wiki.alpinelinux.org/wiki/OpenRC https://github.com/ish-app/ish/wiki/Running-an-SSH-server https://www.youtube.com/watch?v=AtuAdk4MwWw ssh-keygen、ssh、sshd、sshd_config、ssh-copy-id のマニュアルページ