概要
タイトルに記載されているように、AndroidフォンからLinuxサーバーへのSSH接続をセットアップします。つまり、この設定により、LANネットワーク内からSSH AndroidクライアントアプリからLinuxサーバーにアクセスできるようになり、クラウドサーバーなどのリモートサーバーにもアクセスできるようになります。また、SSHキーを作成し、それらをサーバーにインストールする手順についても説明します。これをすべて設定するには、SSHアクセスを有効にするサーバーへのアクセス権がすでに必要です。
サーバーでのSSHセットアップ
前述のように、最初にLinuxサーバーにアクセスできる必要があり、ターミナルも使用できる必要があります。この設定のもう1つの重要な点は、サーバーにSSHサーバーがインストールされていることです。一部のディストリビューションでは、SSHサーバーがデフォルトでインストールされています。ただし、SSHサーバーがインストールされていない場合は、例としてOpenSSHサーバーをインストールできます。 Debian / UbuntuベースのディストリビューションにOpenSSHサーバーをインストールするコマンド:
sudo apt update && sudo apt upgrade -y sudo apt install openssh-server
SSHサービスが開始され、実行されていることを確認します。
sudo systemctl status ssh.service
SSHサービスステータスの出力:
サービスが実行されていない場合は、次のコマンドを実行してサービスを開始し、システム起動時に自動開始を有効にします。
sudo systemctl enable ssh sudo systemctl start ssh
この設定のもう1つの重要な部分は、サーバーにファイアウォールがインストールされている場合です。次に、SSHトラフィックを許可するようにファイアウォールを構成する必要があります。たとえば、サーバーでufwファイアウォールを使用している場合は、次のコマンドを実行して、Androidフォンまたはその他のSSHクライアントからのSSH接続を許可する必要があります。
sudo ufw allow ssh
SSHAndroidクライアントのセットアップ
SSHサーバーがインストールされ、サービスが実行されると、LANネットワーク内のLinuxサーバーとクラウドサーバーでもSSH接続とリモートインを使用できるようになります。デフォルトでは、サーバー上のSSHサービスは、ユーザー名とパスワードを使用して認証を設定します。 LANネットワーク内のサーバーにのみアクセスすることを計画している場合は、これで十分です。 AndroidからSSHキーを追加する必要がある場合も、読み続けてください。
私が選んだAndroidSSHクライアントアプリはJuiceSSHです。まず、Playストアから無料でダウンロードできます。多くの機能があり、すべてのSSH暗号化をサポートし、特別な機能やキーボードショートカット用のキーボードが組み込まれており、接続数に制限はありません。このチュートリアルでは、例としてJuiceSSHを使用します。他のAndroidSSHクライアントが必要な場合は、他のAndroidSSHクライアントもほぼ同じように機能します。
接続とユーザーアカウントの設定
アプリを起動したら、最初のオプションである[接続](接続を管理する)を開きます。
接続の下–サーバーへのすべての接続が保存されます。新しいものを作成しますが、その前に、SSH接続のユーザーアカウントとして知られるIDを設定する必要があります。左にスワイプして[ID]タブに移動します。
ニックネームはオプションです。 [ユーザー名]で、サーバーへの接続とログインに使用するユーザーアカウントを設定します。もちろん、ユーザー名は–rootなどのサーバー上の既存のアカウントと一致する必要があります。パスワードの設定もオプションです。接続するたびにパスワードの入力を求められたくない場合は、パスワードを設定すると、アプリがパスワードを保存します。秘密鍵については、次の段落で説明します。
アプリのユーザーを作成したら、[接続]タブに戻り、新しい接続を作成します。ニックネームもオプションですが、接続するサーバーが複数ある場合に便利です。タイプはもちろんSSHです。アドレスはサーバーのIPアドレスです。LANネットワークからの場合は、サーバーのローカルIPアドレスを入力する必要があります。この場合のシナリオでは、サーバーに静的IPアドレスを設定することをお勧めします。
ただし、クラウドサーバーに接続する場合は、サーバーのパブリックIPアドレスを追加する必要があります。最後に、サーバーへのアクセスに使用するIDまたはユーザーアカウントを選択する必要があります。その後、サーバーに接続できるようにする必要があります。したがって、これまでのところ、このSSH接続設定は機能し、接続できますが、Android携帯にはSSHキーがありません。
強くお勧めします
サーバーへのより安全な接続を追加してSSHキーをインストールする場合、特にリモートクラウドサーバーに接続する必要がある場合は、読み続けてください。リモートサーバーにSSHキーを追加することを強くお勧めします。
SSHキーの生成
次の手順に注意してください。そうしないと、サーバーから自分自身をロックアウトしてしまう可能性があります。 JuiceSSHアプリで、使用するアカウントのSSHキーを生成する必要があります。
アプリで[ID]タブをもう一度ナビゲートし、ポップアップメニューが表示されて[編集]オプションを選択するまで、sshキーを生成するIDを指で押し続けます。
次に、秘密鍵ラベルのすぐ横にある– UPDATE/CLEARボタンをクリックします。ただし、新しいID /ユーザーを初めて作成する場合は、ボタンに「秘密鍵ラベルのすぐ横に設定」と表示されます。
キーメニューが表示されたら、[生成]タブに移動します。キーフォーマットはRSAを選択します。キー強度は、少なくとも2048ビット以上の4096ビットを選択します。パスフレーズはオプションですが、セキュリティの追加レイヤーであるため、必要に応じてパスフレーズを追加しても問題はありません。終了したら[OK]をクリックして、変更を保存します。キーが生成されるまで1分かかります。
次のステップでは、アプリ内で– IDをもう一度指で押したまま、オプションを選択します– –公開鍵をエクスポートしてコピーします。 よくメモして保存してください。
JuiceSSHは、そのアカウントに対して毎回新しく生成されたものを使用するようになります。
SSHキーのインストール
もう一度サーバーに移動します。次に、作成してコピーしたばかりの新しい公開鍵を追加する必要があります。ターミナルを開き、ユーザーの.sshフォルダーに移動して、承認されたキーファイルを編集します。ファイルが存在しない場合は、作成します。次のコマンドで両方を実行できます:
sudo nano .ssh/authorized_keys
このファイルにキーを貼り付け、ファイルを保存して終了します。
次に、SSHサーバーの構成を変更します。そこで、サーバーにauthorized_keysファイルを使用するように指示し、SSHキーを読み取る必要があります。
もう一度注意してください
通常、推奨されるオプションであり、より安全なのは、デフォルトのパスワードログインオプションを無効にし(サーバーへのブルートフォース攻撃を防ぐため)、SSHキーのみでログインできるようにすることです。構成を完了する前に、行ったことをすべて確認し、サーバーからロックアウトされないように注意してください。もちろん、ロックアウトされても世界の終わりではありません。変更を修正するのが少し不便になる可能性があります。 LAN上のサーバーを使用すると、サーバーに直接/精神的にアクセスして変更を修正できます。クラウドプロバイダーでは、ダッシュボードのユーザーにサーバーへの直接アクセスが可能な仮想端末を提供し、変更を修正することもできます。ただし、このタイプのシナリオがなく、SSH経由でリモートサーバーにリモート接続するオプションしかない場合は、注意してください。
SSHサーバー構成
次に、SSHサーバー構成に移動し、以下に示すように変更を加えます。
SSHサーバー構成のコマンド:
sudo nano /etc/ssh/sshd_config
次に、次のオプションを検索してコメントを解除し、次のように編集します。
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 PasswordAuthentication no
変更を加えたら、構成を保存し、SSHサービスを再起動して変更を適用します。
sudo systemctl restart ssh
その後、SSHキーを使用してAndroid携帯からLinuxサーバーにSSH接続でログインできるようになります。
成功したssh接続がどのように見えるかについての写真をいくつか示します。
概要
これは、Android携帯用のLinuxサーバーへのSSH接続のセットアッププロセスでした。この設定により、AndroidからSSH経由でサーバーに接続できるようになります。
どうもありがとうございました…