シェルプロンプトを表示するLinuxラップトップ

サイバーセキュリティを真剣に考え、SSHキーを使用してリモートログインにアクセスします。 パスワードよりも安全な接続方法です。 LinuxでSSHキーを生成、インストール、使用する方法を示します。

パスワードの何が問題になっていますか?

セキュアシェル(SSH)は、リモートのLinuxまたはUnixのようなコンピューター上のユーザーアカウントにログインするために使用される暗号化されたプロトコルです。 通常、このようなユーザーアカウントはパスワードを使用して保護されます。 リモートコンピュータにログインするときは、ログインするアカウントのユーザー名とパスワードを入力する必要があります。

パスワードは、コンピューティングリソースへのアクセスを保護する最も一般的な手段です。 それにもかかわらず、パスワードベースのセキュリティには欠点があります。 人々は弱いパスワードを選択したり、パスワードを共有したり、複数のシステムで同じパスワードを使用したりします。

SSHキーははるかに安全で、いったん設定すると、パスワードと同じくらい簡単に使用できます。

SSHキーを安全にするものは何ですか?

SSHキーが作成され、ペアで使用されます。 2つのキーはリンクされており、暗号的に安全です。 1つは公開鍵で、もう1つは秘密鍵です。 これらはユーザーアカウントに関連付けられています。 1台のコンピューター上の複数のユーザーがSSHキーを使用する場合、各ユーザーは独自のキーのペアを受け取ります。

秘密鍵は(通常は)ホームフォルダーにインストールされ、公開鍵はアクセスする必要があるリモートコンピューターにインストールされます。

秘密鍵は安全に保管する必要があります。 他の人がアクセスできる場合は、パスワードを発見した場合と同じ立場にいます。 賢明な(そして強く推奨される)予防策は、強力なパスフレーズを使用して秘密鍵をコンピューター上で暗号化することです。

公開鍵は、セキュリティを損なうことなく自由に共有できます。 公開鍵の検査から秘密鍵が何であるかを判別することはできません。 秘密鍵は、秘密鍵だけが復号化できるメッセージを暗号化できます。

接続要求を行うと、リモートコンピューターは公開鍵のコピーを使用して暗号化されたメッセージを作成します。 メッセージには、セッションIDとその他のメタデータが含まれています。 このメッセージを復号化できるのは、秘密鍵を所有しているコンピューター(コンピューター)だけです。

コンピューターが秘密鍵にアクセスし、メッセージを復号化します。 次に、独自の暗号化されたメッセージをリモートコンピュータに送り返します。 特に、この暗号化されたメッセージには、リモートコンピューターから受信したセッションIDが含まれています。

これで、リモートコンピューターは、秘密鍵だけがコンピューターに送信したメッセージからセッションIDを抽出できるため、あなたが本人である必要があることを認識します。

リモートコンピュータにアクセスできることを確認してください

リモートコンピュータにリモートで接続してログインできることを確認します。 これは、ユーザー名とパスワードにリモートコンピューターで有効なアカウントが設定されていること、および資格情報が正しいことを証明します。

SSHとパスワードを使用してターゲットコンピュータに接続できることを確認するまで、SSHキーを使用して何もしないでください。

この例では、daveというユーザーアカウントを持つユーザーがhowtogeekというコンピューターにログインしています。 彼らはSulacoと呼ばれる別のコンピューターに接続します。

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

ssh dave @ sulaco
ターミナルウィンドウでのssh dave @ sulaco

彼らはパスワードを求められ、パスワードを入力し、Sulacoに接続します。 これを確認するために、コマンドラインプロンプトが変わります。

sshとパスワードを使用してsulacoに接続したユーザーdave

これで確認は完了です。 したがって、ユーザーdaveはexitコマンドを使用してSulacoから切断できます。

出口
ユーザーdaveがsulacoから切断されました

切断メッセージを受け取り、コマンドラインプロンプトはdave @ howtogeekに戻ります。

関連:Windows、macOS、またはLinuxからSSHサーバーに接続する方法

SSHキーのペアの作成

これらの手順は、LinuxのUbuntu、Fedora、およびManjaroディストリビューションでテストされました。 すべてのケースでプロセスは同じであり、テストマシンに新しいソフトウェアをインストールする必要はありませんでした。

SSHキーを生成するには、次のコマンドを入力します。

ssh-keygen
端末ウィンドウのssh-keygen

生成プロセスが開始されます。 SSHキーを保存する場所を尋ねられます。 Enterキーを押して、デフォルトの場所を受け入れます。 フォルダーのアクセス許可により、ユーザーのみが使用できるように保護されます。

端末ウィンドウでのsshキーの保存場所の確認

パスフレーズを要求されます。 ここにパスフレーズを入力することを強くお勧めします。 そして、それが何であるかを思い出してください! Enterキーを押してパスフレーズをなくすこともできますが、これはお勧めできません。 3つまたは4つのつながっていない単語で構成されるパスフレーズをつなげて、非常に堅牢なパスフレーズを作成します。

ターミナルウィンドウでパスフレーズを要求する

入力したと思ったものを入力したことを確認するために、もう一度同じパスフレーズを入力するように求められます。

SSHキーが生成され、保存されます。

鍵の生成が完了し、ランダムなアートがターミナルウィンドウに表示されます

表示されている「ランダムアート」は無視してかまいません。 リモートコンピューターによっては、接続するたびにランダムなアートが表示される場合があります。 そのアイデアは、ランダムアートが変更されたかどうかを認識し、そのサーバーのSSHキーが変更されたことを意味するため、接続に疑わしいということです。

公開鍵のインストール

リモートコンピューターであるSulacoに公開鍵をインストールして、公開鍵があなたのものであることを認識させる必要があります。

これは、ssh-copy-idコマンドを使用して行います。 このコマンドは、通常のsshコマンドと同様にリモートコンピューターに接続しますが、ログインを許可する代わりに、SSH公開鍵を転送します。

ssh-copy-id dave @ sulaco
ssh-copy-id dave @ sulaco

リモートコンピューターにログインしていない場合でも、パスワードを使用して認証する必要があります。 リモートコンピューターは、新しいSSHキーが属するユーザーアカウントを識別する必要があります。

ここで入力する必要があるパスワードは、ログインしているユーザーアカウントのパスワードです。 これは、作成したばかりのパスフレーズではありません。

ターミナルウィンドウにパスワードプロンプトを表示したssh-copy-id

パスワードが確認されると、ssh-copy-idは公開鍵をリモートコンピューターに転送します。

コンピュータのコマンドプロンプトに戻ります。 リモートコンピュータに接続されたままではありません。

ターミナルウィンドウでpulic keyが正常に転送されました

SSHキーを使用した接続

提案に従って、リモートコンピュータに接続してみましょう。

ssh dave @ sulaco
ターミナルウィンドウでのssh dave @ sulaco

接続のプロセスには秘密鍵へのアクセスが必要であり、SSHキーをパスフレーズの背後で保護したため、接続を続行できるようにパスフレーズを提供する必要があります。

パスフレーズ要求ダイアログボックス

パスフレーズを入力し、[ロック解除]ボタンをクリックします。

ターミナルセッションでパスフレーズを入力したら、そのターミナルウィンドウを開いている限り、再度入力する必要はありません。 パスフレーズを再度入力しなくても、必要な数のリモートセッションに接続および切断できます。

[ログイン時にこのキーを自動的にロック解除する]オプションのチェックボックスをオンにすることもできますが、セキュリティが低下します。 コンピュータを放置すると、誰でもあなたの公開鍵を持つリモートコンピュータに接続できます。

パスフレーズを入力すると、リモートコンピューターに接続されます。

ターミナルウィンドウでのリモートコンピューターへの接続

プロセスをもう一度エンドツーエンドで確認するには、exitコマンドで切断し、同じターミナルウィンドウからリモートコンピューターに再接続します。

ssh dave @ sulaco
ターミナルウィンドウでのsshキーの接続と切断

パスワードまたはパスフレーズを必要とせずにリモートコンピュータに接続されます。

パスワードなし、ただしセキュリティ強化

サイバーセキュリティの専門家は、セキュリティの摩擦と呼ばれるものについて話します。 これは、セキュリティを強化するために我慢しなければならない小さな痛みです。 より安全な作業方法を採用するには、通常、いくつかの追加の手順が必要です。 そして、ほとんどの人はそれを好きではありません。 彼らは実際にはセキュリティの低下と摩擦の欠如を好みます。 それは人間の性質です。

SSHキーを使用すると、セキュリティが向上し、利便性が向上します。 それは確かに双方に有利です。