概要

Windowsの標準機能を使用してPowerShellからSSH接続を行う方法は、特にWindows 10およびWindows Server 2019以降のバージョンで容易に行えます。以下に、標準のSSHクライアントを使用してPowerShellからSSH接続を行う方法を説明します。

必要条件

1. OpenSSHクライアントのインストール

通常、最新のWindowsには既にインストールされていますが、念のためインストールされているか確認します。

インストール確認方法

  1. 設定アプリを開く 「設定」 -> 「アプリ」 -> 「オプション機能の管理」
  2. OpenSSHクライアントを探す リストに「OpenSSHクライアント」があるか確認します。無い場合は「機能の追加」からインストールします。

2. PowerShellスクリプトでSSH接続

PowerShellで標準のsshコマンドを使用して接続します。

# 接続情報の設定
$server = "サーバーのIPアドレス"
$username = "ユーザー名"
$password = "パスワード"
$command = "ls -l"

# パスワードを使用した接続
# PowerShellからsshコマンドを使用
$sshCommand = "ssh $username@$server '$command'"

# 実行
Invoke-Expression $sshCommand

3. SSH接続時のパスワード入力自動化

パスワードをスクリプトに直接書くのはセキュリティ上問題があるため、鍵認証を使用する方法が推奨されますが、簡易的にパスワードをスクリプト内で使用する場合は以下の方法があります。

キー認証の設定方法

  1. 鍵ペアを生成する

    以下のコマンドをPowerShellで実行して、SSHキーを生成します。

    ssh-keygen -t rsa -b 2048
    
  2. 公開鍵をサーバーにコピーする

    公開鍵を対象サーバーにコピーします。

    ssh-copy-id -i ~/.ssh/id_rsa.pub $username@$server
    
  3. 接続を実行する

    $server = "サーバーのIPアドレス"
    $username = "ユーザー名"
    $command = "ls -l"
    
    # 鍵認証を使用して接続
    $sshCommand = "ssh -i ~/.ssh/id_rsa $username@$server '$command'"
    
    # 実行
    Invoke-Expression $sshCommand