GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu で SSH 認証キーを構成する方法

SSH (Secure Shell) は、さまざまなタイプのタスクをリモートで実行するためのリモート ホスト。 SSH はデフォルトでは Ubuntu にインストールされていません。インストール後、SSH は、パスワードで保護され、暗号化されたリモート システムへのアクセスを提供できます。 SSH サーバーはリモート ホストで実行され、SSH クライアントはリモート接続を確立するシステムで実行されます。 authorized_keys ファイルは SSH 接続の最も重要な部分です。公開鍵認証を使用してリモート ホストにログインできるユーザーを認証するために使用される鍵を指定します。このファイルを SSH 接続に使用する方法については、このチュートリアルで説明しました。

要件

SSH サーバーは、デフォルトでは Ubuntu にインストールされません。このチュートリアルを開始する前に、SSH サーバーとして機能する OpenSSH パッケージをインストールする必要があります。 OpenSSH サーバーがまだシステムにインストールされていない場合は、次のコマンドを実行してインストールします。

$ sudo apt install openssh-server

SSH キーを生成する

リモート サーバーでコマンドを実行するための 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_config

PasswordAuthentication の値を 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 接続を行うこともできます。


Ubuntu
  1. Ubuntu18.04でSSHキーを生成する方法

  2. Ubuntu20.04SSHサーバー

  3. Ubuntu20.04にNFSサーバーをインストールして構成する方法

  1. Ubuntu20.04にVNCをインストールして構成する方法

  2. Ubuntu18.04にVNCをインストールして構成する方法

  3. Ubuntu18.04でSSHキーを設定する方法

  1. Ubuntu18.04でMySQLマスタースレーブレプリケーションを構成する方法

  2. Ubuntu20.04でSSHキーを設定する方法

  3. Debian 9 /Ubuntu16.04サーバーでHAProxyを設定する方法