GitHub用のknown_hostsを生成

はじめに

GitHub ActionsからSSHで別のGitHubリポジトリにデプロイしようとした. 以下のGitHub Actionを利用して,GitHubリポジトリのSecretからSSH秘密鍵をGitHub ActionsのRunnerへ配置する.

shimataro/ssh-key-action: GitHub Action that installs SSH key to .ssh

このとき,CI(GitHub Actions)でデプロイするにあたり,SSHサーバの公開鍵が必要になった. 一般にターミナルからSSHする際は known_hosts に保存されている. この記事ではコマンドを使ってSSHサーバの公開鍵を取り出す.

環境

$ uname -a
Darwin xxx.local 22.3.0 Darwin Kernel Version 22.3.0: Thu Jan  5 20:49:43 PST 2023; root:xnu-8792.81.2~2/RELEASE_ARM64_T8103 arm64

$ ssh -V
OpenSSH_9.0p1, LibreSSL 3.3.6

手順

以下のコマンドを実行する.

ssh-keyscan -t ed25519 github.com

以下の結果が得られた.

## github.com:22 SSH-2.0-babeld-171cdc72
github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl

ファイルに書き出す場合はリダイレクトすればよい.

ssh-keyscan -t ed25519 github.com >> known_hosts

参考資料