やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

起動引数にSSHのホスト名を指定するとGitHubに設定しDBに登録するようにした。

利用中アカウントを登録するときに使える。

成果物

GitHubGitHub.Upload.Read.SshConfig.201704051338

開発環境

前回まで

http://ytyaru.hatenablog.com/entry/2017/11/06/000000

今回

ユースケース

GitHubでアカウントを作って、SSH公開鍵も作成してある。バリバリ利用中のアカウントをこのツールに登録したい。

使い方

$ python3 GitHubUserRegister.py insert -u user1 -p pass -s github.com.user1

前提条件

  • GitHubサイトでアカウント登録済みであること
  • ~/.ssh/configに起動引数-sに渡す値が設定されてあること
    • Hostキーに秘密鍵ファイルパスが指定してあること
    • IdentityFileキーに秘密鍵ファイルパスが指定してあること
    • 公開鍵、秘密鍵とも同一ディレクトリにあること
  • このツールで未登録であること
    • GitHub.Accounts.sqlite3の各テーブルで指定ユーザのデータが存在しないこと

罠になりそうな点

  • -s起動引数を渡したが~/.ssh/configIdentityFileキーで指定したファイルが存在しない場合
    • 未検証だが実行時エラーになると思う
  • 公開鍵、秘密鍵とも同一ディレクトリにあること
    • DBに登録するときにそのように参照している。実態がどうなっているのかはその環境次第なので自動対応不能

課題

  • Tokenが多くて邪魔
    1. 現在のように権限別で複数のTokenを作成する
    2. ツールで1つのTokenにし、権限は適時変更しながら使う
  • SSH鍵生成時に、任意の値を指定したい
    • 暗号化方式
    • 暗号化強度
  • SSHのconfigを編集したい(定義順などきれいに整形したい)
  • /cui/register/Main.pyが汚すぎる

気になった問題

SSH鍵設定したTokenを削除するとSSH鍵設定も削除されてしまう。

The following SSH Keys created by this token will also be deleted.

このトークンによって作成された以下のSSH鍵も削除されます。

翻訳

f:id:ytyaru:20170405185754g:plain

そんな仕様だったとは知らなかった。1回使ったらToken削除してもいいと思っていたのだが。Token管理について考えたほうがいいか。

所感

コードを綺麗にしたい。