Linux→Windows11にSSH公開鍵認証で接続する
はじめに
LinuxからWindowsへのSSH接続を環境設定含めてやってみました。
環境
Linux、Windowsの環境は以下の記事で作成した仮想環境を使用します。
また、WindowsのOpenSSHサーバーの有効化は以下の記事になります。
事前準備(Windows/ホスト)
公開鍵認証で接続するため、Windows側で、sshd_configの項目を修正しておきます。
C:\ProgramData\ssh\sshd_config
を開いて、以下のコメントアウトをはずしておきます。
(デフォルトでyesになっていますが、念の為)
PubkeyAuthentication yes
また、最後の行の以下をコメントアウトします。
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
ファイルを保存したら、OpenSSHを再起動します。
(コマンドだと、Restart-Service sshd
)
※ 私はまだNWの設定ができていなかったため、以下の設定も追加しました。
VMWare Fusion > 仮想マシン > ネットワークアダプタ > ブリッジに変更
FireWallの設定
> New-NetFirewallRule -Name AllowICMPv4 -DisplayName "Allow ICMPv4" -Protocol ICMPv4 -Direction Inbound -Action Allow
上記を設定し、Linux側からPingコマンドを打って接続確認
合わせて以下の設定もしました。
# ファイアウォールでポート22を許可
> New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
手順1(Linux/クライアント)
Open-SSHが入っているか確認
$ ssh -V
OpenSSH_8.7p1, OpenSSL 3.2.2 4 Jun 2024
公開鍵・秘密鍵を作成
$ ssh-keygen -t rsa -b 4096
$ ls -l ~/.ssh
-rw------- 1 rocky rocky 3381 Aug 31 17:42 id_rsa
-rw-r--r-- 1 rocky rocky 743 Aug 31 17:42 id_rsa.pub
手順2(Windows/ホスト)
authorized_keysの作成
C:¥Users¥<ユーザー名>
にauthorized_keysを作成し、Linuxのid_rsa.pubの内容を貼り付けます。
ipconfigコマンドでIPv4のアドレスを確認
> ipconfig
IPv4 アドレス部分を確認
> whoami
念の為ユーザー名も確認
手順3(Linux/クライアント)
ssh接続
以下のコマンドでssh接続してみます。
$ ssh -i ~/.ssh/id_rsa Windowsユーザー名@WindowsIPアドレス
接続できて、Windowsユーザー名@WINDOWS_11 C:\Users\<Windowsユーザー名>>
が出たら成功です🎉
個人的メモ
① sshdプロセスが起動できなくなった
C:\ProgramData\ssh\logs
を開いた際、権限変更してしまい、sshdが開始・再起動できなくなってしまいました。SYSTEM、Administrators以外のユーザーを削除したら、無事起動できました。
🌟 参考
② sshコマンドのオプションについて
# 詳細なログを確認したいとき
$ ssh -vvv -i ~/.ssh/id_rsa Windowsユーザー名@WindowsIPアドレス
# ポートを指定したいとき
$ ssh -p 2222 -i ~/.ssh/id_rsa Windowsユーザー名@WindowsIPアドレス
まとめ・感想
無事接続できてよかったです!ネットワーク関係はやはりつまずくので、これからも勉強が必要だと感じました。
Discussion