序章

リモートLinuxサーバーをセットアップするときは、サーバーに安全に接続する方法を決定する必要があります。 パスワードはユーザーの身元を確認する1つの方法ですが、パスワードには複数の脆弱性があり、ブルートフォース攻撃によって解読される可能性があります。 S ecure Sh ellキー( SSHキーとしてよく知られています)は、リモートLinuxサーバーに接続するためのより安全な方法を提供するため、パスワードの代わりによく使用されます。 。 セキュアシェル暗号化ネットワークプロトコルの一部として、SSHキーを使用すると、ユーザーは、テキストベースのコマンドをリモートサーバーに配信したり、そのサービスを構成したりするなど、セキュリティで保護されていないネットワーク上でネットワークサービスを安全に実行できます。

このチュートリアルでは、MacOSとLinux、およびLinux用のWindowsサブシステムを使用したWindowsで、オープンソースSSHツールのスイートであるOpenSSHを使用してSSHキーを作成する手順について説明します。 コマンドラインを使い始めたばかりの読者向けに書かれており、パーソナルコンピュータで端末にアクセスするためのガイダンスを提供します。 このチュートリアルを完了すると、はじめにの一部であるチュートリアルDigitalOceanドロップレットにUbuntu20.04サーバーをセットアップする方法でサーバーを安全にセットアップするために使用できるSSHキーが得られます。クラウドカリキュラムへ。

コマンドラインに既に精通しており、SSHを使用してリモートサーバーに接続する手順を探している場合は、さまざまなLinuxオペレーティングシステムのSSHキーの設定に関するチュートリアルのコレクションを参照してください。

前提条件

このチュートリアルを完了するには、次のものが必要です。

  • 次のオペレーティングシステムのいずれかを実行しているローカルマシン:macOS、Linux、またはLinux用のWindowsサブシステムがインストールされたWindows。 Windowsを使用している場合は、MicrosoftのドキュメントページでLinux用のWindowsサブシステムをダウンロードまたは更新するための手順を見つけることができます。 OpenSSHはさまざまなLinuxディストリビューションで機能するはずですが、このチュートリアルはUbuntu20.04を使用してテストされていることに注意してください。

:Linux用のWindowsサブシステムがないWindowsマシンでSSHキーを作成する方法については、製品ドキュメントPuTTYを使用してSSHキーを作成する方法をご覧ください。 Windows

  • 端末とコマンドラインの操作にある程度精通している。 端末とコマンドラインの操作の概要が必要な場合は、ガイドLinuxコマンドライン入門書にアクセスしてください。

ステップ1—SSHキーを理解する

SSHキーは、リモートサーバーへのアクセスを要求するユーザーのIDを認証するために使用できる2つの長い文字列です。 これらのキーは、ユーザーがローカルコンピューターでSSHユーティリティを使用して生成します。 1つのキーは秘密であり、ユーザーのローカルマシンに保存されます。 もう1つのキーは公開されており、リモートサーバーまたはユーザーが安全に通信したい他のエンティティと共有されます。

ユーザーがSSHを使用してサーバーへの接続を要求すると、サーバーは公開鍵で暗号化されたメッセージを送信します。このメッセージは、関連付けられた秘密鍵でのみ復号化できます。 次に、ユーザーのローカルマシンは、その秘密鍵を使用してメッセージの復号化を試みます。 メッセージが正常に復号化されると、サーバーはパスワードを必要とせずにユーザーにアクセスを許可します。 認証されると、ユーザーはローカル端末でリモートシェルセッションを起動して、テキストベースのコマンドをリモートサーバーに配信できます。

次のステップでは、SSHキーのペアを生成するために使用されるSSHユーティリティにアクセスできるように、コンピューターでターミナルを開きます。

ステップ2—コンピューターでターミナルを開く

ターミナルを使用すると、グラフィカルユーザーインターフェイスではなく、テキストベースのコマンドを使用してコンピューターを操作できます。 コンピュータの端末にアクセスする方法は、使用しているオペレーティングシステムの種類によって異なります。

macOSを実行しているマシンでは、Terminalアプリケーションは通常、Applicationsフォルダー内のUtilitiesフォルダーにあります。 SearchSpotlightで「ターミナル」を検索して見つけることもできます。

Linuxコンピューターで作業している場合、ディストリビューションのデフォルトのターミナルアプリケーションも、通常、Applicationsフォルダー内のUtilitiesフォルダーにあります。 デスクトップ検索機能で「ターミナル」を検索して見つけることもできます。

Linux用のWindowsサブシステムを実行しているWindowsマシンで作業している場合は、インストール後すぐにLinuxターミナルが開くはずです。 デスクトップ検索機能で「Ubuntu」を検索して見つけることもできます。

システムのターミナルアプリケーションを見つけたら、新しいターミナルウィンドウを開きます。 端末には、ユーザー名、ドル記号($)、およびカーソルが表示されます。 ここからコマンドを入力して、端末に何をすべきかを指示します。

次のステップでは、テキストベースのコマンドを入力して、SSHキーのペアを生成します。

ステップ3—OpenSSHを使用したキーの生成

macOSまたはLinuxオペレーティングシステムには、標準のOpenSSHツールスイートがすでにインストールされている必要があります。 このツールスイートには、SSHキーのペアを生成するために使用するユーティリティssh-keygenが含まれています。

端末に次のコマンドを入力します。

  1. ssh-keygen

次に、キーの場所を選択するように求められます。 デフォルトでは、キーは~/.sshディレクトリに保存され、ファイル名は秘密キーの場合はid_rsa、公開キーの場合はid_rsa.pubです。 デフォルトの場所を使用すると、SSHクライアントは認証時にSSHキーを自動的に見つけることができるため、これらのデフォルトのオプションを受け入れることをお勧めします。 これを行うには、ENTERを押します。

Output
Generating public/private rsa key pair. Enter file in which to save the key (/home/sammy/.ssh/id_rsa):

<$>[警告] 警告 :以前にキーペアを生成したことがある場合は、既存のキーを実際に上書きするかどうかを確認するように求められます。

Output
/home/sammy/.ssh/id_rsa already exists. Overwrite (y/n)?

ディスク上のキーを上書きすることを選択した場合、以前のキーを使用して認証することはできなくなります。 「はい」を選択することは、不可逆的な破壊的なプロセスです。

ディスク上の既存のキーを上書きすることが確実な場合は、Yを押してからENTERを押すことで上書きできます。 <$>

デフォルトの場所を選択した場合、公開鍵は/home/sammy/.ssh/id_rsa.pubに配置され、秘密鍵は/home/sammy/.ssh/id_rsaに配置されます。 ファイルパスでは、sammyがユーザー名に置き換えられることに注意してください。

キーの場所を選択すると、ディスク上の秘密キーファイルを暗号化するオプションのパスフレーズを入力するように求められます。

パスフレーズを入力する場合は、このキーを使用するたびにパスフレーズを入力する必要があります(復号化されたキーを保存するSSHエージェントソフトウェアを実行している場合を除く)。 パスフレーズを使用することをお勧めしますが、ENTERを押すだけで、このプロンプトをバイパスできます。

Output
Created directory '/home/sammy/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again:

その最後のプロンプトに続いて、システムはSSHキーペアを生成します。

Output
Your identification has been saved in /home/sammy/.ssh/id_rsa. Your public key has been saved in /home/sammy/.ssh/id_rsa.pub. The key fingerprint is: a9:49:EX:AM:PL:E3:3e:a9:de:4e:77:11:58:b6:90:26 sammy@203.0.113.0 The key's randomart image is: +--[ RSA 2048]----+ | ..o | | E o= . | | o. o | | .. | | ..S | | o o. | | =o.+. | |. =++.. | |o=++. | +-----------------+

これで、認証に使用できる公開鍵と秘密鍵ができました。

結論

おめでとうございます。これで、SSHキーのペアが生成されました。 これらのキーは、リモートサーバーと安全に接続するために使用でき、クラウドカリキュラムの概要のこのチュートリアルに続くチュートリアルDigitalOceanドロップレットでUbuntu20.04サーバーをセットアップする方法に必要です。 。

SSHを使用した作業の詳細については、ガイド SSH Essentials:SSHサーバー、クライアント、およびキーの操作をご覧ください。