🍜
MacからWindowsのPowershellにssh接続する
ポートの競合を避ける(WSL2でもsshを有効にしている場合のみ)
私の場合、22番ポートはWindows→WSL2のsshで使ってしまっているので、Windows→Powershellは2200を使うことにします。
OpenSSHサーバーをインストール・起動
以下の記事を参考に、OpenSSHサーバーをWindowsにインストールします。
システム > オプション機能から、OpenSSHサーバーが有効になっていることを確認します。
PowershellでGet-Service sshd
を実行し、Runningになっていることを確認します。
Windowsユーザーへのログインをパスワード認証にする(WindowsへのログインがPIN認証かつsshでパスワード認証したい場合のみ
私の場合、使用ユーザーがMicrosofaccountであり、PIN認証だったので、パスワード認証に切り替える必要がありました。
以下のブログを参考にさせていただきました。
sshd_configの設定変更
Windows側のssh設定(sshd_config
)を変更します。
sshd_configは管理者でないと変更できないので、管理者アカウントでない場合はPowershellを管理者で開いて、
cd C:\ProgramData\ssh\
notepad .\sshd_config
とかすると編集できます。
- sshd_config
PasswordAuthentication yes
AllowUsers <Windowsのアカウント名>
<Windowsのアカウント名>
はPowershellでwhoami
したときにでてくる<ドメイン>\<ユーザー名>
です。
その後、sshdを再起動し設定を最適用させます。
Restart-Service sshd
macからWindowsにssh接続
ssh -p 2200 <Windowsのアカウント名>@<IPアドレス>
<Windowsのアカウント名>`s password: と聞かれるので、Windowsのアカウントにログインするときのパスワードを入力
Windowsにsshでログインすることができました。
しかし、先ほど使ったsshdのコマンドが使えません。デフォルトのシェルがbashになっているためでした。
そこで、powershell.exe
を実行することでPowershellに切り替えてあげます。
これで、MacからWindowsのPowershellにssh接続し、Powershell上でコマンドを実行することができました。
Discussion