SSM Session Managerで待望のSSHが使える様になりましたね! めでたい!
しかし、公式マニュアルにはどうやらLinuxやMacでの設定方法しか書いてないので、Windowsでも簡単に使う方法を検証しました。
料金も無料だし、アクセス先制限もできるしもう使うしか無いですね!!
前提条件
- windows 10
- EC2インスタンスはSSMが使える様エージェント、ロール設定済み
インストール
たったの3ステップ!
- AWS CLIインストール
公式にあるとおりインストーラーをダウンロードしてきてインストールする。
https://s3.amazonaws.com/aws-cli/AWSCLISetup.exe
- Session Manager Pluginインストール
公式にあるとおりインストーラーをダウンロードしてきてインストールする。
https://s3.amazonaws.com/session-manager-downloads/plugin/latest/windows /SessionManagerPluginSetup.exe
- SSHの設定を追加する。
Windowsの場合、C:\Users\【UserName】\.ssh\config
に以下を追加、もしくは追記する。
config
# SSH over Session Manager
host i-* mi-*
ProxyCommand C:\Program Files\Amazon\AWSCLI\bin\aws.exe ssm start-session 【--profile あれば】 --target %h --document-name AWS-StartSSHSession --parameters "portNumber=%p"
オリジナルとの違いはsh -c
が無くなってaws
がフルパス、portNumber
のシングルクォーテーションからダブルクォーテーションへ変更
AWS CLIでプロファイル使っているときはここで入れておく
完了!
参考文献
- AWS Systems Manager セッションマネージャーでSSH・SCPできるようになりました | DevelopersIO
- Windows に AWS CLI をインストールする - AWS Command Line Interface
- (オプション) AWS CLI 用の Session Manager Plugin をインストールする - AWS Systems Manager
- Step 7: (Optional) Enable SSH Session Manager Sessions - AWS Systems Manager
- 料金 - AWS Systems Manager | AWS
- 特定 EC2 インスタンスには、SSM セッションログインさせたくないんや | DevelopersIO
- Proxy下のWindows10でOpenSSHする - Qiita
補足
接続に使う秘密鍵は接続先対象EC2に設定しているそのもの
呼び方はSession Manager for SSHとかでよいのだろうか?
端末とAWS間の通信方法
StreamUrlとして以下がAWS CLIのコマンド応答として返却されているためWebSocket(wss)でつながっている。
wss://ssmmessages.ap-northeast-1.amazonaws.com/v1/data-channel/【IAMユーザー名を含むランダム列】?role=publish_subscribe
AWS CLIをその他の場所にインストールしていた場合にAWSコマンドの場所を調べる
where aws