Linuxで公開鍵/秘密鍵のSSHキーを生成する方法

リモートホストに頻繁にSSHで接続する場合、SSHサーバーのセキュリティを強化する1つの方法は、公開鍵/秘密鍵SSHを使用することです。これにより、パスワードがネットワーク上に送信されることはありません。また、ブルートフォース攻撃を防ぐこともできます。
Linuxで公開鍵/秘密鍵SSHを生成するのは簡単です。
- ターミナルを開きます。次のように入力します:
ssh-keygen -t rsaまたは、DSA(デジタル署名アルゴリズム)技術を使用して公開鍵/秘密鍵を生成することもできます。
ssh-keygen -t dsa注意: DSAとRSAのセキュリティについては多くの議論があります。私の意見では、あなたが非常に特別な理由がない限り、どちらの技術を選んでも問題ありません。両方とも問題なく動作します。
- 次の画面で、キーを保存する場所を尋ねるプロンプトが表示されます。デフォルトの場所はホームディレクトリ内の.sshフォルダーです。デフォルト設定を受け入れるには、Enterキーを押します。

- パスフレーズの入力を求められます - リモートホストに接続するためのパスフレーズではなく、秘密鍵を解除するためのパスフレーズです。これにより、秘密鍵を取得してもリモートサーバーにアクセスできないようにします。パスフレーズは任意です。空白のままにするには、Enterキーを押します。

- 公開鍵と秘密鍵のSSHが生成されました。ファイルマネージャーを開き、.sshディレクトリに移動します。id_rsaとid_rsa.pubという2つのファイルが表示されるはずです。

- 新しいSSH公開鍵をリモートホストにアップロードするには、次のコマンドを実行します:
ssh-copy-id username@remote-host-ip-address
- リモートホストにログインし、SSH設定ファイルを編集します:
ssh username@remote-host-ip-address
sudo nano /etc/ssh/sshd_config設定ファイルを下にスクロールし、次の属性が正しく設定されていることを確認してください:
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication noCtrl + Oを押してファイルを書き込み、保存し、次にCtrl + Xを押してファイルを閉じます。

- リモートホストでSSHサーバーを再起動します:
sudo systemctl restart sshこれで完了です。次のコマンドを使用してリモートホストに接続できます:
ssh username@remote-host-ip-address
よくある質問
SSHキーをリモートサーバーにコピーしたが、「Permission Denied」エラーが表示されます。
この問題は、リモートホストの「.ssh」フォルダーに問題がある可能性が高いです。デフォルトでは、SSHデーモンは、構成フォルダーと「authorized_keys」ファイルの権限ビットが正しくない場合、受信接続を拒否します。
ファイルとフォルダーの権限を変更するには、リモートマシンのローカルコンソールにアクセスし、「/home」ディレクトリに移動して次のコマンドを実行します: chmod 700 /home/$USER/.ssh && chmod 600 /home/$USER/.ssh/authorized_keys。最後に、デーモンを再起動して新しい設定を適用します: sudo systemctl restart ssh。
同じリモートサーバーに対して複数のSSHキーを作成することは可能ですか?
はい!ただし、マシン内の各SSHキーが一意のファイル名を持つことを確認する必要があります: ssh-keygen -f /home/$USER/.ssh/filename。
それに加えて、リモートホストにログインするために使用するキーを指定することを確認してください: ssh -i /home/$USER/.ssh/filename [email protected]。
古い動作しているキーを持っているリモートホストに新しいSSHキーをインポートすることは可能ですか?
はい!まず、新しいキーをSSH認証エージェントにインポートします: ssh-add。次に、古いマシンにログインし、そのキーを同じ認証エージェントにインポートします: ssh -A old.machine.ip.address && ssh-add -c。
最後に、古いマシンをCtrl + Dを押して離脱し、新しいキーと古いキーの両方を使用してリモートホストに接続します。
画像クレジット: Unsplash。すべての変更とスクリーンショットはRamces Redによるものです。