ipadでiSHを使用してalphine linuxでSSHを使用する方法は?

ipadでiSHを使用してalphine linuxでSSHを使用する方法は?

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経由で接続できません。

  1. 見つからないホスト名は「root」です。
  2. ホストのIPアドレスを取得できません。
  3. しかし、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(オープンインターネット)

  1. _ルータでのポート転送の設定

    • それは次のとおりです。
      • ソースポート:22(変更されていない場合はクライアントデバイスのポート)
      • 転送ポート:443(多数のルータがこのポートを介したSSHトラフィックを許可する)
      • 宛先ポート:22(Sshサーバーがリッスンするポート)
  2. 必要に応じて、サーバーコンピュータでファイアウォールを設定します。

    • UFWから
      • sudo ufw は、clientipaddress からすべてのアプリケーションへの OpenSSH を許可します。
      • sudo ufw リロード
  3. 動的ポート転送を使用した接続 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 のマニュアルページ

関連情報