zaki work log

作業ログやら生活ログやらなんやら

[Linux] GitHubに登録している公開鍵を ~/.ssh/authorized_keys に取り込む

取り込むというか単にcurlで取得できるよ、という小ネタ。

少し前からUbuntuのOSインストール時にGitHubに登録してるSSH公開鍵を設定できるようになってたりしてますが、GitHubの公開鍵は特定のURLで簡単に参照できるので、OSインストール後でも任意のタイミングで設定できます。

GitHubの公開鍵のURL

GitHubに登録した公開鍵は以下のURLでアクセスできます。

https://github.com/{GITHUB_USERNAME}.keys

私(zaki-lknr)の場合だと以下。

https://github.com/zaki-lknr.keys

authorized_keysへ公開鍵の登録

OpenSSHの場合は、公開鍵は~/.ssh/authorized_keysに保存すればOK

$ curl https://github.com/zaki-lknr.keys -o /home/zaki/.ssh/authorized_keys

すでに~/.ssh/authorized_keysに別の公開鍵が登録してある場合は↑だと上書きしてしまうので、

$ curl https://github.com/zaki-lknr.keys >> /home/zaki/.ssh/authorized_keys

などで追記します。

kickstartインストールで設定する

以前ここで公開鍵を埋め込んで実装してたけど、OSインストール直後の状態でインターネットにアクセスできるのであればkickstartインストールの%postに組み込めます。

%post
mkdir -m 700 /home/zaki/.ssh
curl https://github.com/zaki-lknr.keys -o /home/zaki/.ssh/authorized_keys
chmod 600 /home/zaki/.ssh/authorized_keys
chown -R zaki:zaki /home/zaki/.ssh
%end

こんな感じ。

(ちなみに/.sshは755でauthorized_keysは644でもリモートから公開鍵認証できるなぁ…sshd設定かな)

zaki-hmkc.hatenablog.com