EC2インスタンスの秘密鍵の管理から開放される ssos (ssh-setup-over-ssm) をリリースした
EC2インスタンスに入りたい時ってたまにないですか?
EC2インスタンスのsshの秘密鍵の管理をどうしよう、とか EC2インスタンスのユーザの管理をどうしよう、とか悩みますよね。
今回リリースした、ssos (ssh-setup-over-ssm) を使えば EC2インスタンスを使いたい人が、自分でセットアップすることが出来るようになります。
このツールを使うに当たって必要なのは AWSのクレデンシャルのみです。EC2インスタンスの秘密鍵も必要ありません。 Systems Manager経由でSend Commandできるインスタンスであれば sshでログイン出来るようになります。
今回作ったssosのリポジトリはこちらです。
はじめに
対象のEC2インスタンスでターミナルを使うだけなら Systems Managerを使えば、確かに、sshを使わなくても ターミナルを使うことは出来ます。
しかし、scpをしたい、となった場合はどうでしょう。 ssh鍵を使わないと出来ないです(はずです)。 加えて通常ssh公開鍵を置くには、EC2の秘密鍵が必要です。 また、EC2の秘密鍵を使う場合、その秘密鍵を管理する方法に悩まされることになります。
今回リリースした、ssosでは、秘密鍵の管理に苦しまされることもなく EC2インスタンスを使いたい人が、自分でsshの公開鍵を配置して 自分でsshの設定をすることが出来るようになります。
使うにあたって必要なもの
必要なものは以下のものです。 ログインしたいEC2の秘密鍵は必要ありません。
ssosで出来ること
出来ることは至ってシンプルです。現状、以下の2つです。
- ユーザの作成
- SSHの公開鍵の設定
使い方は以下の通りです。
# ユーザの作成 ssos create-user -u masaya -i i-xxxxxxxxxxxxxxxx # ssh公開鍵の配置 ssos add-ssh-key -u masaya -i i-xxxxxxxxxxxxxxxx -k ~/.ssh/id_rsa.pub
インストール方法
インストールはGithub Releaseにリリースしているのでそちらからダウンロードして パスに入れてください。
# MacOS curl -L https://github.com/wreulicke/ssos/releases/download/v0.0.3/ssos_0.0.3_darwin_amd64 -o /usr/local/bin/ssos # Linux curl -L https://github.com/wreulicke/ssos/releases/download/v0.0.3/ssos_0.0.3_linux_amd64 -o /usr/local/bin/ssos # Windows curl -L https://github.com/wreulicke/ssos/releases/download/v0.0.3/ssos_0.0.3_windows_amd64.exe -o <path-directory>/ssos.exe
まとめ
もともと、ssh-over-ssm というbashスクリプトがあって 今回リリースしたssosのアイデアのほとんどはこれを参考にしています。
前々職や前職で悩まされていたEC2の秘密鍵の共有方法や EC2の公開鍵のセットアップの属人性を解決したいと思い、作りました。
また、今回作ったssosではAmazon Linux2をベースにprovisioning 方法を考えています。 そのため、他の環境では動かないかもしれません。
終わり。
追記: この記事書いてるときに見つけたけど
作ったユーザでsudoしようとしたら、パスワード要求されて泣いてる。
パスワードなしでsudo使えるようにユーザを作るようにしようと思います。
v0.0.2で対応しました。