目次:
- ダウンロードPuTTYgen
- PuTTYgenを使用したSSHキーの作成
- 公開鍵をLinuxサーバーにコピーします
- SSHキーを使用してサーバーにログインします
- SSHパスワード認証を無効にする
- 結論
Secure Shell(SSH)は、クライアントとサーバー間の安全な接続に使用される暗号化ネットワークプロトコルであり、さまざまな認証メカニズムをサポートしています。
最も一般的な2つのメカニズムは、パスワードベースの認証と公開キーベースの認証です。 SSHキーの使用は、従来のパスワード認証よりも安全で便利です。
このチュートリアルでは、PuTTYgenを使用してWindowsでSSHキーを生成する方法について説明します。 また、SSHキーベースの認証を設定し、パスワードを入力せずにリモートLinuxサーバーに接続する方法も示します。
ダウンロードPuTTYgen
PuTTYgenは、最も人気のあるWindows SSHクライアントPuTTYのSSHキーを生成できるオープンソースユーティリティです。
PuTTYgenはスタンドアロンの実行可能ファイルとして利用でき、PuTTY.msiインストールパッケージの一部でもあります。 PuTTYgenがインストールされていない場合は、PuTTYダウンロードページに移動して、PuTTYインストールパッケージをダウンロードします。 インストールは簡単です。インストールパッケージをダブルクリックして、指示に従います。
PuTTYgenを使用したSSHキーの作成
PuTTYgenを使用してWindowsでSSHキーペアを生成するには、次の手順を実行します。
-
.exeファイルをダブルクリックするか、Windowsの[スタート]メニュー→[PuTTY(64ビット)]→[PuTTYgen]に移動して、PuTTYgenツールを起動します。
「生成するキーのタイプ」については、デフォルトのRSAのままにします。 「生成されたキーのビット数」2048は、ほとんどの人にとって十分です。 または、4096に変更できます。
[生成]ボタンをクリックして、新しいキーペアの生成プロセスを開始します。
キーセクションの空白領域にマウスを移動して、ランダム性を生成するように求められます。 ポインターを移動すると、緑色の進行状況バーが進みます。 プロセスには数秒かかります。
生成プロセスが完了すると、公開キーがウィンドウに表示されます。
オプションで、パスフレーズを使用する場合は、「キーパスフレーズ」フィールドに入力し、「パスフレーズの確認」フィールドで同じパスフレーズを確認します。 パスフレーズを使用することを選択した場合、秘密鍵を不正使用から保護することにより、セキュリティをさらに強化できます。
[秘密キーを保存]ボタンをクリックして秘密キーを保存します。.ppk拡張子(PuTTYプライベートキー)を使用して、任意のディレクトリにファイルを保存できますが、簡単に見つけられる場所に保存することをお勧めします。 秘密鍵ファイルにはわかりやすい名前を使用するのが一般的です。
オプションで、公開鍵を保存することもできますが、秘密鍵をロードすることで後で再生成できます。
「OpenSSH authorized_keysファイルに貼り付けるための公開キー」というラベルの付いたテキストフィールドを右クリックし、「すべて選択」をクリックしてすべての文字を選択します。 テキストエディタを開き、文字を貼り付けて保存します。 必ずキー全体を貼り付けてください。 プライベートキーと同じ名前を使用し、ファイル拡張子として.txtまたは.pubを使用して、プライベートキーを保存したディレクトリと同じディレクトリにファイルを保存することをお勧めします。
これは、Linuxサーバーに追加するキーです。
公開鍵をLinuxサーバーにコピーします
SSHキーペアを生成したので、次のステップは、管理するサーバーに公開キーをコピーすることです。
PuTTYプログラムを起動し、リモートLinuxサーバーにログインします。
ユーザーのSSHディレクトリが存在しない場合は、mkdirコマンドを使用して作成し、正しい権限を設定します。
mkdir -p ~/.ssh
chmod 0700 ~/.ssh
テキストエディターを開き、キーペアを生成するときに手順4でコピーした公開キーを
~/.ssh/authorized_keys
ファイルに貼り付けます。
nano ~/.ssh/authorized_keys
公開鍵のテキスト全体を1行に収める必要があります。
次の
chmod
コマンドを実行して、ユーザーのみが
~/.ssh/authorized_keys
ファイルの読み取りと書き込みができることを確認します。
chmod 0600 ~/.ssh/authorized_keys
SSHキーを使用してサーバーにログインします
Pageantは、メモリ内に秘密鍵を保持するPuTTY SSH認証エージェントです。 PageantバイナリはPuTTY.msiインストールパッケージの一部であり、Windowsの[スタート]メニュー→[PuTTY(64ビット)]→[Pageant]に移動して起動できます。
Pageantを起動すると、システムトレイにアイコンが配置されます。 アイコンをダブルクリックすると、Pageantウィンドウが開きます。
キーをロードするには、「キーを追加」ボタンを押して、新しいファイルダイアログを開きます。 秘密鍵ファイルを見つけて、「開く」を押します。 パスフレーズを設定していない場合、キーはすぐにロードされます。 それ以外の場合は、パスフレーズを入力するよう求められます。
パスワードを入力すると、Pageantが秘密鍵をロードします。
上記の手順を完了すると、パスワードの入力を求められることなく、リモートサーバーにログインできるようになります。
テストするには、新しいPuTTY SSHセッションを開き、サーバーにログインしてみてください。 PuTTYはロードされたキーを使用し、パスワードを入力せずにLinuxサーバーにログインします。
SSHパスワード認証を無効にする
サーバーにセキュリティのレイヤーを追加するには、SSHのパスワード認証を無効にします。
SSHパスワード認証を無効にする前に、パスワードなしでサーバーにログインでき、ログインしているユーザーがsudo特権を持っていることを確認してください。
リモートサーバーにログインし、テキストエディターでSSH構成ファイル
/etc/ssh/sshd_config
を
/etc/ssh/sshd_config
ます。
sudo nano /etc/ssh/sshd_config
次のディレクティブを検索し、次のように変更します。
/ etc / ssh / sshd_config
PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
ファイルを保存したら、次のように入力してSSHサービスを再起動します。
sudo systemctl restart ssh
この時点で、パスワードベースの認証は無効になっています。
結論
このチュートリアルでは、新しいSSHキーペアを生成し、SSHキーベースの認証を設定する方法を学びました。 同じキーを複数のリモートサーバーに追加できます。 また、SSHパスワード認証を無効にして、サーバーにセキュリティレイヤーを追加する方法も示しました。
デフォルトでは、SSHはポート22でリッスンします。デフォルトのSSHポートを変更すると、自動化された攻撃のリスクが軽減されます。
sshセキュリティ