メインコンテンツまでスキップ

PowerShellにおけるSSH接続と鍵認証の設定方法

PowerShellでは、SSHを利用した安全なリモート接続が可能です。特にWindows 10以降では、OpenSSHが標準で搭載されているため、追加のソフトウェアなしでSSH接続を設定し、サーバーの管理やファイル転送を行えます。このノートでは、PowerShellでSSHの鍵認証を設定し、パスワード不要でリモート接続する方法について解説します。

1. SSH鍵ペアの生成

まず、PowerShellでSSH接続に必要な鍵ペアを生成します。これは、一度設定すれば以降の接続でパスワードを入力する必要がなくなり、セキュリティ面でも安全です。

  1. PowerShellを開き、以下のコマンドを実行して鍵を生成します:

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  2. プロンプトが表示されたら、鍵の保存場所を指定します。デフォルトではC:\Users\ユーザー名\.ssh\id_rsaに保存されますので、特に指定がなければEnterキーを押して進みます。

  3. パスフレーズの設定が求められますが、自動接続を行う場合は空欄のままEnterを押してスキップします。

これで、秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が生成されました。


2. 公開鍵のサーバーへの配置

次に、生成した公開鍵をリモートサーバーに配置し、鍵認証を有効にします。以下の手順で行います:

  1. 公開鍵の内容を確認するには、以下のコマンドを実行します:

    Get-Content C:\Users\ユーザー名\.ssh\id_rsa.pub
  2. リモートサーバーにログインし、~/.ssh/authorized_keysファイルに公開鍵を追加します。以下は、Linuxサーバーでの例です:

    mkdir -p ~/.ssh
    echo "ここに公開鍵の内容を貼り付けます" >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    chmod 700 ~/.ssh

    これで、サーバー側での設定が完了です。


3. PowerShellでのSSH接続

設定が完了したら、PowerShellからSSHで接続してみましょう。以下の手順に従ってください:

  1. 以下のコマンドをPowerShellで実行し、リモートサーバーに接続します:

    ssh ユーザー名@サーバーIPアドレス

    初回接続時には、ホストの信頼性確認のために「yes」を求められることがあります。表示に従って「yes」を入力し、Enterキーを押してください。

  2. 設定が正しければ、パスワードなしでリモートサーバーに接続できます。成功すれば、SSH鍵認証が適切に機能していることになります。


4. 鍵認証のメリット

SSH鍵認証は、セキュリティと利便性の両方で大きなメリットがあります。パスワード認証に比べ、第三者が推測できない複雑な鍵による保護があるため、サーバーのセキュリティが強化されます。また、鍵認証を使用すれば、毎回のパスワード入力が不要になり、リモート操作の効率が向上します。


このように、PowerShellとSSHを組み合わせてリモートサーバーを管理することで、安全かつ効率的なシステム管理が可能になります。初めての設定は少々手間がかかりますが、一度設定してしまえば、以降の接続が非常に快適になります。

是非、SSH鍵認証を活用して、システム管理の効率を向上させてください。