サーバーのSSHのログを見ていると次のようなものがある。
git(gitlab)は 単一ユーザとしてログインして、アプリ内で別ユーザに分割するので、アクセスログを見ていると、どのログがどの公開鍵かぱっとわからない。
Accepted publickey for git from 110.66.166.xxx port ssh2: RSA SHA256:ZBTKfSJOp46Wa Accepted publickey for git from 122.249.189.xxx port ssh2: RSA SHA256:6hsJqs+UYtaqn Accepted publickey for git from 153.183.186.xxx port ssh2: RSA SHA256:2UsYMJTNfHog Accepted publickey for git from 153.183.186.xxx port ssh2: RSA SHA256:6hsJqs+UYtaqn Accepted publickey for git from 153.183.189.xxx port ssh2: RSA SHA256:NxqmEpe7bbWv Accepted publickey for git from 183.76.241.xxx port ssh2: RSA SHA256:3R31KV8N0vK6u Accepted publickey for git from 49.106.193.xxx port ssh2: RSA SHA256:qpG9ikqYC8kkcx
公開鍵のフィンガープリントを取得する。
ssh-keygen -lf path/to/id_rsa.pub
このコマンドを使うと、公開鍵から指紋を 取り出すことが出来る
takuya@sample$ ssh-keygen -lf out.pub 2048 SHA256:NxqmEpe7bbWvK86VQn5Xhxxxxxxxxxxxxxx takuya@test (RSA)
指紋のハッシュをSHA256で取り出すのでサーバーのログと一致して嬉しい。
gitlab などに登録された公開鍵はmd5
管理画面からは指紋がMD5なのでぱっとわからない。
公開鍵のフィンガープリントはMD5でもアプリで表示されることがあるのでその方法でも一致を確認できる
takuya@sample$ ssh-keygen -E md5 -lf out.pub 2048 MD5:5f:37:90:4b:c3:e1:6a:fe:fd:d2:ea:7a:00:00:00:00 takuya@test (RSA)
指紋のみかたをしっておく
せっかくハッシュを見たら解るのに、意外と使いこなせないので調べた。