サイバーセキュリティを真剣に受け止め、SSHキーを使用してリモートログインにアクセスします。パスワードよりも安全な接続方法です。 LinuxでSSHキーを生成、インストール、および使用する方法を示します。
パスワードの何が問題になっていますか?
セキュアシェル(SSH)は、リモートLinuxのユーザーアカウントにログインするために使用される暗号化されたプロトコルです。 Unixライク コンピューター。通常、このようなユーザーアカウントは、パスワードを使用して保護されます。リモートコンピューターにログインするときは、ログインするアカウントのユーザー名とパスワードを入力する必要があります。
パスワードは、コンピューティングリソースへのアクセスを保護するための最も一般的な手段です。それにもかかわらず、パスワードベースのセキュリティには欠点があります。人々は弱いパスワードを選択したり、パスワードを共有したり、複数のシステムで同じパスワードを使用したりします。
SSHキーははるかに安全であり、一度設定すると、パスワードと同じように簡単に使用できます。
SSHキーを安全にするものは何ですか?
SSHキーはペアで作成され、使用されます。 2つのキーはリンクされており、暗号的に安全です。 1つは公開鍵で、もう1つは秘密鍵です。それらはユーザーアカウントに関連付けられています。 1台のコンピューター上の複数のユーザーがSSHキーを使用する場合、各ユーザーは独自のキーのペアを受け取ります。
秘密鍵は(通常)ホームフォルダーにインストールされ、公開鍵はアクセスする必要のあるリモートコンピューターにインストールされます。
秘密鍵は安全に保管する必要があります。他の人がアクセスできる場合、あなたは他の人があなたのパスワードを発見したのと同じ立場にいます。賢明な、そして強く推奨される予防策は、秘密鍵をコンピューター上で堅牢に暗号化することです。 パスフレーズ 。
公開鍵は、セキュリティを損なうことなく自由に共有できます。公開鍵の検査から秘密鍵が何であるかを判断することはできません。秘密鍵は、秘密鍵だけが復号化できるメッセージを暗号化できます。
接続要求を行うと、リモートコンピューターは公開鍵のコピーを使用して暗号化されたメッセージを作成します。メッセージには、セッションIDとその他のメタデータが含まれています。このメッセージを復号化できるのは、秘密鍵を所有しているコンピューター(コンピューター)だけです。
コンピュータが秘密鍵にアクセスし、メッセージを復号化します。次に、独自の暗号化されたメッセージをリモートコンピュータに送り返します。特に、この暗号化されたメッセージには、リモートコンピューターから受信したセッションIDが含まれています。
リモートコンピューターは、コンピューターに送信されたメッセージからセッションIDを抽出できるのは秘密鍵のみであるため、自分が本人である必要があることを認識します。
リモートコンピュータにアクセスできることを確認してください
あなたができることを確認してください リモートコンピュータにリモート接続してログインします 。これは、ユーザー名とパスワードがリモートコンピューターに有効なアカウントを設定しており、資格情報が正しいことを証明します。
パスワード付きのSSHを使用してターゲットコンピューターに接続できることを確認するまで、SSHキーで何もしようとしないでください。
この例では、ユーザーアカウントを持つ人は
デイブ
と呼ばれるコンピュータにログインしています
howtogeek
。彼らはと呼ばれる別のコンピュータに接続しようとしています
スラコ
。
次のコマンドを入力します。
ssh dave @ sulaco
パスワードの入力を求められ、入力すると、Sulacoに接続されます。コマンドラインプロンプトが変更され、これを確認します。
必要な確認はこれですべてです。だからユーザー
デイブ
から切断できます
スラコ
とともに
出口
コマンド:
出口
彼らは切断メッセージを受け取り、コマンドラインプロンプトはに戻ります
dave @ howtogeek
。
関連: Windows、macOS、またはLinuxからSSHサーバーに接続する方法
SSHキーのペアの作成
これらの手順は、LinuxのUbuntu、Fedora、およびManjaroディストリビューションでテストされました。すべての場合において、プロセスは同一であり、どのテストマシンにも新しいソフトウェアをインストールする必要はありませんでした。
SSHキーを生成するには、次のコマンドを入力します。
ssh-keygen
生成プロセスが開始されます。 SSHキーをどこに保存するかを尋ねられます。 Enterキーを押して、デフォルトの場所を受け入れます。フォルダの権限は、あなたの使用のためだけにそれを保護します。
パスフレーズの入力を求められます。ここにパスフレーズを入力することを強くお勧めします。そしてそれが何であるかを覚えておいてください! Enterキーを押してパスフレーズを削除することはできますが、これはお勧めできません。接続されていない3つまたは4つの単語で構成されるパスフレーズをつなぎ合わせると、非常に堅牢なパスフレーズになります。
入力したと思ったものを入力したことを確認するために、同じパスフレーズをもう一度入力するように求められます。
SSHキーが生成され、保存されます。
表示される「randomart」は無視してかまいません。一部のリモートコンピュータでは、接続するたびにランダムなアートが表示される場合があります。ランダムアートが変更されたかどうかを認識し、そのサーバーのSSHキーが変更されたことを意味するため、接続を疑うという考え方です。
公開鍵のインストール
公開鍵をにインストールする必要があります
スラコ
、リモートコンピュータ。これにより、公開鍵が自分のものであることがわかります。
これは、
ssh-copy-id
コマンド。このコマンドは、通常のようにリモートコンピュータに接続します
ssh
コマンドですが、ログインを許可する代わりに、公開SSHキーを転送します。
ssh-copy-id dave @ sulaco
リモートコンピューターにログインしていなくても、パスワードを使用して認証する必要があります。リモートコンピューターは、新しいSSHキーが属するユーザーアカウントを識別する必要があります。
ここで入力する必要のあるパスワードは、ログインしているユーザーアカウントのパスワードであることに注意してください。これは ない 作成したばかりのパスフレーズ。
パスワードが確認されると、
ssh-copy-id
公開鍵をリモートコンピュータに転送します。
コンピュータのコマンドプロンプトに戻ります。リモートコンピュータに接続したままではありません。
SSHキーを使用した接続
提案に従って、リモートコンピュータに接続してみましょう。
ssh dave @ sulaco
接続のプロセスには秘密鍵へのアクセスが必要であり、パスフレーズの背後でSSH鍵を保護しているため、接続を続行できるようにパスフレーズを提供する必要があります。
パスフレーズを入力し、[ロック解除]ボタンをクリックします。
ターミナルセッションでパスフレーズを入力すると、そのターミナルウィンドウが開いている限り、パスフレーズを再度入力する必要はありません。パスフレーズを再度入力しなくても、必要な数のリモートセッションに接続したり切断したりできます。
[ログインするたびにこのキーのロックを自動的に解除する]オプションのチェックボックスをオンにすることもできますが、セキュリティが低下します。コンピュータを無人のままにしておくと、誰でもあなたの公開鍵を持っているリモートコンピュータに接続できます。
パスフレーズを入力すると、リモートコンピューターに接続されます。
プロセスをエンドツーエンドでもう一度確認するには、
出口
コマンドを実行し、同じターミナルウィンドウからリモートコンピュータに再接続します。
ssh dave @ sulaco
パスワードやパスフレーズを必要とせずに、リモートコンピューターに接続できます。
パスワードはありませんが、セキュリティが強化されています
サイバーセキュリティの専門家は、セキュリティ摩擦と呼ばれるものについて話します。これは、セキュリティを強化するために我慢する必要のある小さな問題です。通常、より安全な作業方法を採用するには、追加の手順が1つか2つ必要です。そして、ほとんどの人はそれが好きではありません。彼らは実際にはより低いセキュリティと摩擦の欠如を好みます。それは人間の本性です。
SSHキーを使用すると、セキュリティが向上し、利便性が向上します。それは間違いなくwin-winです。