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

Generate Ssh Key Linux 00 Featured Image

リモートホストに頻繁にSSHで接続する場合、SSHサーバーのセキュリティを強化する1つの方法は、公開鍵/秘密鍵SSHを使用することです。これにより、パスワードがネットワーク上に送信されることはありません。また、ブルートフォース攻撃を防ぐこともできます。

Linuxで公開鍵/秘密鍵SSHを生成するのは簡単です。

  1. ターミナルを開きます。次のように入力します:
ssh-keygen -t rsa

または、DSA(デジタル署名アルゴリズム)技術を使用して公開鍵/秘密鍵を生成することもできます。

ssh-keygen -t dsa

注意: DSAとRSAのセキュリティについては多くの議論があります。私の意見では、あなたが非常に特別な理由がない限り、どちらの技術を選んでも問題ありません。両方とも問題なく動作します。

  1. 次の画面で、キーを保存する場所を尋ねるプロンプトが表示されます。デフォルトの場所はホームディレクトリ内の.sshフォルダーです。デフォルト設定を受け入れるには、Enterキーを押します。

Generate Ssh Key Linux 01 Create New Key

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

Generate Ssh Key Linux 02 Add New Passphrase

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

Generate Ssh Key Linux 03 List Ssh Folder Files

  1. 新しいSSH公開鍵をリモートホストにアップロードするには、次のコマンドを実行します:
ssh-copy-id username@remote-host-ip-address

Generate Ssh Key Linux 04 Copy Key To Remote Host

  1. リモートホストにログインし、SSH設定ファイルを編集します:
ssh username@remote-host-ip-address  
sudo nano /etc/ssh/sshd_config

設定ファイルを下にスクロールし、次の属性が正しく設定されていることを確認してください:

RSAAuthentication yes  
PubkeyAuthentication yes  
PasswordAuthentication no

Ctrl + Oを押してファイルを書き込み、保存し、次にCtrl + Xを押してファイルを閉じます。

Generate Ssh Key Linux 05 Modify Remote Host Ssh Daemon

  1. リモートホストでSSHサーバーを再起動します:
sudo systemctl restart ssh

これで完了です。次のコマンドを使用してリモートホストに接続できます:

ssh username@remote-host-ip-address

Generate Ssh Key Linux 06 Seamless Ssh Login Remote Host

よくある質問

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によるものです。