各種サービスからユーザの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はオープンソースなのでプルリク送れば実装される説はありますが、ひとまず現時点ではなそうです。
詳しい型の情報お待ちしております。