LinuxでSSHキーを生成する方法

概要

  • SSHキーはパスワードなしでリモートサーバーにアクセスするための安全な方法です。公開鍵と秘密鍵で構成されています。
  • Linuxでssh-keygenコマンドを使用してSSHキーペアを生成し、セキュリティを強化するためにパスフレーズを追加することを検討してください。
  • ssh-copy-idを使用するか、authorized_keysファイルにキーを手動で貼り付けることで、SSH公開鍵をリモートサーバーにコピーします。

SSHキーを使用すると、パスワードなしでアクセスを許可しながら、リモートサーバーアカウントを安全に保つことができます。Linuxで生成するのは簡単です。

SSHキーとは何ですか?

SSHキーは、リモートマシンにログインできるようにする暗号化によって生成されたキーです。SSHキーは、公開鍵と秘密鍵を含む「キーペア」です。公開鍵をリモートマシンにコピーすると、それを使用して認証されます。秘密鍵は、その名前が示すようにプライベートであり、ローカルマシンに保存する必要があります。

SSHの秘密鍵を他の人と共有しないでください!

ログイン時に、リモートサーバーはSSHを使用して公開鍵と秘密鍵を比較します。一致した場合、リモートシステムへの入力が許可されます。このキーペアシステムを使用すると、セキュリティを維持しながら簡単にアカウントを設定できます。

リモートキーを生成する方法

SSHキーペアを生成するには、Linuxのコマンドラインで「ssh-keygen」コマンドを使用します。ファイルの場所を選択するように求められ、使用する場合はパスフレーズを入力して確認します。パスフレーズを使用すると、キーにセキュリティを強化するレイヤーを追加できます。

パスフレーズを使用する場合は、忘れないでください!忘れた場合、そのキーを使用してログインできなくなります。

パスワードなしでログインする場合は、パスフレーズを空白のままにしてください。

デフォルトでは、ssh-keygenはEd25519アルゴリズムを使用します。非常に安全であるため、ほとんどの場合これで十分です。-tフラグを使用して、使用するアルゴリズムの種類を指定できます。通常、サーバーで使用されているアルゴリズムがサポートされていない場合を除き、これを行う必要はありません。ssh-keygenのマニュアルページを読んで、異なるキーペアを生成する方法を確認できます。

リモートマシンに新しいSSHキーを取得する

キーペアを生成したので、キーをリモートサーバーにコピーする必要があります。これを行う方法は2つあります。

最初で最も簡単な方法は、ssh-copy-idユーティリティを使用することです。これを行うには、リモートサーバーアカウントのユーザー名とアドレスを指定して呼び出すだけです。

ssh-copy-id [email protected]

パスワードを入力すると、秘密鍵がコピーされます。

これでリモートサーバーにログインできるようになります。

ssh [email protected]

それが機能しない場合は、公開鍵を手動でコピーして貼り付ける必要があります。公開鍵は、ホームディレクトリの.sshディレクトリにある「.pub」で終わるファイルになります。それを開き、その中にあるものをコピーしてリモートマシンの.ssh/authorized_keysファイルに貼り付けます。

ファイルを保存すると、SSHを使用してサーバーにログインできるようになります。ファイルは自分だけが書き込み可能であることを確認してください。そうでないとエラーが発生する可能性があります。