この記事では、Windows PowerShell上でXサーバーへSSH接続する際の作業内容を記録しています。
特に、SSH鍵のファイルパーミッションの設定や、接続時に遭遇したエラーとその対処方法について解説します。

今後の作業の参考に、また弊社内での情報共有のために備忘録として残しておきます。

作業環境

  • OS: Windows 10/11 (PowerShell 使用)
  • SSHクライアント: OpenSSH (PowerShell 付属)
  • 対象サーバー: エックスサーバ

作業内容とログ

PowerShellでのディレクトリ確認

まずは、自身のユーザー配下のディレクトリを確認し、.sshフォルダへ移動します。

PS C:\Users\{ユーザー名}> ls

    ディレクトリ: C:\Users\{ユーザー名}

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2025/01/24     18:22                .ssh
...(他のディレクトリ省略)

PS C:\Users\{ユーザー名}> cd .ssh
PS C:\Users\{ユーザー名}\.ssh> pwd

Path
----
C:\Users\{ユーザー名}\.ssh

鍵ファイルのパーミッション設定

Windows環境では、UNIX系の chmod の代わりに icacls コマンドでファイルの権限を調整します。
以下のコマンドで、{サーバーID}..key の継承を解除し、セキュアな状態に設定します。

PS C:\Users\{ユーザー名}\.ssh> icacls "C:\Users\{ユーザー名}\.ssh\{サーバーID}.key" /inheritance:r
処理ファイル: C:\Users\{ユーザー名}\.ssh\{サーバーID}..key

正しいホスト名でSSH接続

正しいホスト名とユーザー名を指定して、SSH接続を実行します。
接続時、初回はホストの認証確認が求められますので、表示されたフィンガープリントを確認して「yes」と入力してください。

PS C:\Users\{ユーザー名}\.ssh> ssh -l {サーバーID} -i ~/.ssh/{サーバーID}.key {サーバーID}.xsrv.jp -p 10022

The authenticity of host '[{サーバーID}.xsrv.jp]:10022 ([162.43.101.108]:10022)' can't be established.
ED25519 key fingerprint is SHA256:D2AjNvvigSIbxkY1nM8gQ+cSif8adrNotxGXBu+gYNg.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Warning: Permanently added '[{サーバーID}.xsrv.jp]:10022' (ED25519) to the list of known hosts.
Enter passphrase for key 'C:\Users\{ユーザー名}\.ssh\pyxisu.key':

パスフレーズを入力後、無事にログインできた場合は、サーバー上のディレクトリ内容が以下のように表示されます。

[pyxisu@{サーバー番号}~]$ ls
pyxisu.co.jp  pyxisu.xsrv.jp  ssl

まとめ

今回の作業では、Windows PowerShell上でのSSH接続に必要な基本手順を実施しました。

  • ユーザーディレクトリから .ssh フォルダへ移動
  • icacls コマンドで鍵ファイルのパーミッションを設定
  • 正しいホスト名・ユーザー名でSSH接続を実行

因みにサーバーIDとサーバー番号は違うのでご注意ください。

これにより、Xサーバーとの安全な接続が確立できました。
今後、GitHubとの連携作業の際も、同様の手順で環境構築を進めてください。

株式会社ピクシスでは、こうした技術情報を共有することで、業務の効率化と技術の向上に努めています。
皆様のお役に立てれば幸いです。