📌
各種サービスからユーザのSSH KeyやGPG Keyを取得する方法メモ
ひとまずGitHub、GitLab、 Keybaseあたりを調査。
SSH Key
GitHub
cURLで取れる
$ curl https://github.com/<user>.keys
そのまま authorized_keys
とかに突っ込める。
$ curl https://github.com/<user>.keys >> .ssh/authorized_keys
GitLab
同じくcURLで取れる
$ curl https://gitlab.com/<user>.keys
確認してないけど恐らく同じくそのまま authorized_keys
とかに突っ込める。
$ curl https://gitlab.com/<user>.keys >> .ssh/authorized_keys
Keybase
なさそう…?
検索した感じ、SSH Keyはマシンに紐付くものだから個人に紐付けるのは意味がないらしい。
SSH public keys · Issue #710 · keybase/keybase-issues
そういえば言われてみればkeybaseにはそもそもSSH Keyはアップロードしてないや。
GPG Key
GitHub
これもcURLで取れる
$ curl https://github.com/<user>.gpg
そのまま gpg --import
できる
$ curl -s https://github.com/<user>.gpg | gpg --import
GitLab
なさそう…?
もちろん、APIを叩けば取得できるけどここでは扱わない。
実装されました。GitLab 13.7から使えて、SaaS版(=gitlab.com)なら既に動いてます
$ curl https://gitlab.com/<user>.gpg
そのまま gpg --import
できる
$ curl -s https://gitlab.com/<user>.gpg | gpg --import
Keybase
cURLで取れる
$ curl https://keybase.io/<user>/key.asc
同じく gpg --import
できる。
$ curl -s https://keybase.io/<user>/key.asc | gpg --import
まとめ
GitHub, GitLab, KeybaseからユーザのSSH鍵とGPG鍵を取得する方法を調べました。
KeybaseからSSH鍵、GitLabからGPG鍵を取得する方法はわかりませんでした。GitLabはオープンソースなのでプルリク送れば実装される説はありますが、ひとまず現時点ではなそうです。
詳しい型の情報お待ちしております。
Discussion
GnuPG は
--fetch-keys
コマンドで URL を指定して直接インポート出来ますよ。メモ: GitLabにgpg keyを取得するURLを実装したので13.7から使えるようになる予定です
GitLabにgpg keyを取得できるURLを実装してマージされるまでの経緯とか