要件
SSH サーバーは、デフォルトでは Ubuntu にインストールされません。このチュートリアルを開始する前に、SSH サーバーとして機能する OpenSSH パッケージをインストールする必要があります。 OpenSSH サーバーがまだシステムにインストールされていない場合は、次のコマンドを実行してインストールします。
$ sudo apt install openssh-serverSSH キーを生成する
リモート サーバーでコマンドを実行するための SSH キー ペアを生成します。次のコマンドを実行して、公開鍵と秘密鍵を作成します。秘密鍵はリモート サーバーに保存され、公開鍵はクライアントに安全に保存されます。
$ ssh-keygen -t rsa上記のコマンドを実行すると、キーを保存するファイル名を尋ねられます。 Enter を押します id_rsa.pub であるデフォルトの公開鍵ファイル名を保持するキー .次に、ログインするためのパスワードを求められます。もう一度 Enter を押します 空白のパスワードを保持する場合は、2 回押します。キーを生成した後、次の同様の出力が表示されます。
「authorized_keys」ファイルを作成
id_rsa.pub ファイルには、リモート ホストの ~ / .ssh / フォルダーに格納されている SSH 接続の公開キーが含まれています。クライアント マシンには、リモート ホストに接続するための公開鍵も必要です。これは、チュートリアルの次の部分でコピーされます。公開鍵を含むリモート ホストの ~ / .ssh フォルダーに、authorized_keys ファイルを作成する必要があります。次のコマンドを実行して、id_rsa.pub ファイルを ~ / .ssh /authorized_keys ファイルに移動します。
$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys次の図のように、ファイルが正しく移動された場合、エラーは発生しません。
構成ファイルを変更する
パスワードなしで SSH 接続を行うには、サーバー コンピューターでいくつかの構成パラメーターを設定する必要があります。次のコマンドを実行して、nano エディターで sshd_config ファイルを開き、必要なパラメーター値を設定します。
$ sudo nano / etc / ssh / sshd_configPasswordAuthentication の値を no に設定して、SSH 接続のテキスト パスワード オプションを無効にします。
パスワード認証番号
ファイルを保存して閉じます。次のコマンドを実行して、SSH サービスを再起動します。
$ sudo systemctl restart ssh次のコマンドを実行して、authorized_keys ファイルに認証ビットを設定し、このファイルへの不正アクセスを防止してください。
$ chmod 600 ~ / .ssh /authorized_keys公開鍵をクライアント コンピューターにコピーします
ここで、ssh コマンドを実行しているクライアント マシンにログインして、リモート ホストとの SSH 接続を確立します。ここでは、Ubuntu の 2 つのユーザー アカウントを使用して、ローカル サーバーで SSH 接続を確認しました。このチュートリアルでは、1 つのユーザー アカウントをクライアントとして使用し、別のユーザー アカウントをサーバーとして使用しました。
クライアント コンピューターに ~ / .ssh という名前のフォルダーが存在しない場合は、次のコマンドを実行して作成します。
$ mkdir ~ / .ssh次のコマンドを実行して、公開鍵をリモート ホストからクライアントの ~ / .ssh フォルダーにコピーします。
$ scp [メール保護]:/home/fahmida/.ssh/id_rsa ~ / .ssh /公開鍵をクライアント マシンにコピーするには、リモート ホストのユーザー名のパスワードを入力する必要があります。ファイルが正しくコピーされた場合、次の出力が得られます。クライアント コンピューターは、SSH サービスを介してサーバー コンピューターとの接続を確立する準備が整いました。
パスワードなしで SSH を使用してサーバー コンピュータにログオンする
これで、クライアント コンピューターとサーバー コンピューターの両方に公開キーが存在します。クライアント コンピューターが ssh コマンドでサーバー コンピューターに接続要求を送信すると、サーバーはクライアントの公開鍵とサーバーの公開鍵を比較します。一致が見つかった場合、クライアントからサーバーへの接続が確立されます。ホスト名または IP アドレスを使用して、サーバーまたはリモート ホストに接続できます。ローカル サーバーはこのチュートリアルを使用して、authorized_key を使用してクライアント コンピューターからサーバー コンピューターへの SSH 接続を確立する方法を示しました。 1 つのアカウントは OpenSSH サーバーがインストールされているサーバー マシンとして使用され、別のアカウントはクライアント マシンとして使用されました。クライアント マシンで次のコマンドを実行して、サーバー マシンに接続します。
$ ssh [メール保護]上記のコマンドを実行すると、次の出力が表示されます。出力は、クライアント マシンのユーザー名が「yesmin」であることを示しています。サーバー コンピューターのユーザー名は「fahmida」です。ユーザー名が「yesmin」から「fahmida」に変更されたため、SSH 接続は正しく確立されました。サーバー コンピュータのコンテンツに問題なくアクセスできるようになりました。ユーザーがコマンドを実行すると、サーバー コンピューターに基づいて出力が生成されます。
卒業証書
SSH 接続を確立するための authorized_keys の使用については、localhost に基づいてこのチュートリアルで説明しました。同じプロセスを実行して、リモート ホストの SSH 接続を確立できます。 ssh-copy-id コマンドを使用して、別のチュートリアルで示されているサーバーへの SSH 接続を行うこともできます。