背景
- iPhoneの「ショートカット」に含まれる「SSH経由でスクリプトを実行」でubuntuへは接続ができた。
- Windowsへは「SSH鍵認証できませんでした SSHサーバの認証済みキーのリストに、このデバイスの公開鍵が含まれていることを確認してください。」と表示されてしまう。
手順
OpenSSHをWindowsへインストールする
-
[機能の追加]を選択して「OpenSSH」を検索、インストールを実行する
-
ポート22を開放する(Win10以降はOpenSSHインストール時に自動で開放されます)
PowerShell.ps1#管理者権限が必要 New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
OpenSSHの設定(ここが躓いた原因)
-
以下のコマンドを実行します。
PowerShell.ps1copy c:\Windows\System32\OpenSSH\sshd_config_default c:\ProgramData\ssh\sshd_config
-
c:\ProgramData\sshにあるsshd_configw次のように編集する。
#公開鍵認証のコメントアウトを外す #PubkeyAuthentication yes #↓ PubkeyAuthentication yes #以下の2行をコメントアウトする #管理者権限でログインする場合はこっちが必要? #iPhoneから触るのが怖いので無効化した Match Group administrators AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys #↓ #Match Group administrators # AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
-
OpenSSHを起動する
OpenSSHの起動.ps1Start-Service sshd
起動済みだった場合は再起動する.ps1net stop sshd net start sshd
-
Windows起動時にOpenSSHを起動するように設定する
自動起動を設定.ps1Set-Service sshd -StartupType Automatic
iPhoneのSSH公開鍵をWindowsに追加する
-
iPhone側の「ショートカットアプリ」で「SSH経由でスクリプトを実行」アクションを選択する
-
認証をパスワードからSSHキーに変更する
-
SSHキーをタップし、公開鍵をコピーを選択する(クリップボードに取得されます)
-
C:/Users/ユーザー名/.ssh/authorized_keysに公開鍵を追加する
※メール、チャットアプリでWindowsへ送信するなど方法は何でもOKです -
1~4の手順を半自動化したショートカットを作成しました。
良ければご利用ください。
https://www.icloud.com/shortcuts/2afb633eebf64401b08b35fe9a2a359c
※実行前に公開鍵をクリップボードにコピーしてください。