EC2インスタンスへセキュアにログインできるawsshコマンド作った
2019-10-18
tl; dr
- https://github.com/youyo/awssh
- security groupでsshポート閉じていい
- 公開鍵を事前に登録しておかなくていい
- インスタンスのIP知らなくていい
これは何?
ec2-instance-connect
と ssm session-start
を組み合わせたものです。
https://github.com/youyo/awssh
Session Managerを使用することによりSSHトラフィックをトンネリングできるようになりましたが, それに加えて ec2-instance-connect send-ssh-public-key
で公開鍵の登録すればさらにいいじゃん!ってやつです。
インストール
homebrewでインストール可能です。
$ brew tap youyo/tap
$ brew install awssh
これとは別に session-manager-plugin
コマンドも必要です。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html
使い方
基本的には awssh
を実行すればokです。
その他オプションについてはExamplesを見てください。
その他
久しぶりにGo書いたらGoReleaser最高だなってことに気付きました。
あと session-manager-plugin
コマンドは実装が謎すぎてGoに移植できませんでした。なので外部コマンドとして実行しています。(API叩いて得られたTokenとかパラメーターをどう扱っていいのかがわからなかった。詳しい人いたら教えて欲しい。)
いい加減テストもちゃんと書きましょう(頑張る)