サーバへの接続を楽にしてくれるツールを作ってみた

 サーバへの接続を楽にしてくれるツールを作ってみた

sshコマンドでサーバパスワードを覚えてなくても接続してくれるツールを作った際の背景や使ったツール・ライブラリを紹介しています。

8adb224fa7ccdcbffd09902c83f0e134?s=128

kenji sakoda

May 27, 2019
Tweet

Transcript

  1. サーバへの接続を楽にして くれるツールを作ってみた Go(Un)Conference LT大会 6kg 2019/05/20

  2. プロフィール sakoda kenji 迫田けんじ / webエンジニア • twitter.com/_sakoken • github.com/sakoken

    株式会社アイスタイル テクノロジー本部 R&D部 週末バドミントンやってます。
  3. 話す内容 • 背景 • よくあるシーン • 欲しかったもの • デモ •

    使ったライブラリー / ツール • やり残したこと • まとめ
  4. 背景

  5. 背景 自社ではまだdocker化やansible化が 進んでいないため、サーバに入って設 定をいじったりする作業が多い

  6. よくあるシーン

  7. よくあるシーン サーバにsshで入って仕事したい

  8. よくあるシーン sakoken$ ssh

  9. よくあるシーン sakoken$ ssh サーバのホスト名 なんだっけ

  10. よくあるシーン sakoken$ ssh メモ帳 host: xxx.yyy.zzz password: abcd123456789

  11. よくあるシーン sakoken$ ssh ken@xxx.yyy.zzz

  12. よくあるシーン sakoken$ ssh ken@xxx.yyy.zzz ken@xxx.yyy.zzz's password: パスワード なんだっけ

  13. よくあるシーン sakoken$ ssh ken@xxx.yyy.zzz ken@xxx.yyy.zzz's password: メモ帳 host: xxx.yyy.zzz password:

    abcd123456789
  14. このようなことあったりしませんか

  15. 欲しかったもの

  16. 欲しかったもの • ターミナル上で • hostの管理ができて • サーバのパスワードを覚えてなくても • sshでログインをしてくれるもの •

    パスワードは暗号化されていて • 最近使ったものが分かり • 各hostにメモが書けて • hostの絞り込み検索ができること
  17. 作ってみました! https://github.com/sakoken/sshh

  18. デモ https://github.com/sakoken/sshh

  19. 使ったライブラリ・ツールたち • github.com/chzyer/readline ◦ GNU-Readlineの様なライブラリで ◦ コマンドライン上でインタラクティブな機能を簡単に作れる • gopkg.in/urfave/cli.v2 ◦

    コマンドラインツールを作るためのフレームワーク • github.com/goreleaser/goreleaser ◦ 各種OS用にビルドしたり ◦ brewでの配布を容易にしてくれたりする
  20. github.com/chzyer/readline

  21. github.com/chzyer/readline https://github.com/chzyer/readline/blob/master/example/readline-demo/readline-demo.go

  22. github.com/chzyer/readline • readline.Readline ◦ 入力待ち • readline.ReadlineWithDefault ◦ デフォルト値入力済みの入力待ち •

    readline.ReadPassword ◦ 入力値のマスキング
  23. やり残したこと • 鍵認証への対応 • テスト

  24. まとめ • インタラクティブなcliを作るのに chzyer/readlineがおすすめ • sshでHostやPassword覚えるのに疲れたら sakoken/sshhを使ってみてください

  25. ご静聴ありがとうございます