この記事では、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との連携作業の際も、同様の手順で環境構築を進めてください。
株式会社ピクシスでは、こうした技術情報を共有することで、業務の効率化と技術の向上に努めています。
皆様のお役に立てれば幸いです。