known_hosts
ファイルにキーを「安全に」追加する最も重要な部分は、サーバー管理者からキーフィンガープリントを取得することです。キーフィンガープリントは次のようになります。
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA)
GitHubの場合、通常、管理者と直接話すことはできません。ただし、Webページにキーを置いて、そこから情報を回復できるようにします。
手動キーインストール
1)サーバーからキーのコピーを取り、その指紋を取得します。注意:指紋を確認する前にこれを行ってください。
$ ssh-keyscan -t rsa github.com | tee github-key-temp | ssh-keygen -lf -
# github.com:22 SSH-2.0-babeld-f3847d63
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA)
2)サーバー管理者からキーフィンガープリントのコピーを取得します-この場合、github.comの情報を含むページに移動します
- github.comにアクセスします
- ヘルプページにアクセスします(ログインしている場合は右側のメニュー、それ以外の場合はホームページの下部にあります)。
- 「はじめに」セクションで、SSHを使用したGitHubへの接続に進みます
- 移動し、あなたのSSH接続のテスト
- 後で使用するために、SHA256フィンガープリントをそのページからテキストエディターにコピーします。
3) 2つのソースのキーを比較する
テキストエディターで上下に直接配置することで、何かが変更されたかどうかを簡単に確認できます
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA) #key recovered from github website
2048 SHA256:nThbg6kXUpJ3Gl7E1InsaspRomtxdcArLviKaEsTGY8 github.com (RSA) #key recovered with keyscan
(2番目のキーは操作されていますが、元のキーと非常に似ていることに注意してください。このようなことが発生した場合、深刻な攻撃を受けているため、信頼できるセキュリティ専門家に連絡する必要があります。)
キーが異なる場合、手順を中止し、セキュリティの専門家に連絡してください
4)キーが正しく比較される場合、ダウンロードしたキーをインストールする必要があります
cat github-key-temp >> ~/.ssh/known_hosts
または、システム上のすべてのユーザーに(rootとして)インストールするには:
cat github-key-temp >> /etc/ssh/ssh_known_hosts
自動キーインストール
ビルドプロセス中にキーを追加する必要がある場合は、上記の手動プロセスのステップ1〜3に従う必要があります。
それが終わったら、github-key-temp
ファイルの内容を調べて、それらの内容を既知のホストファイルに追加するスクリプトを作成します。
if ! grep github.com ~/.ssh/known_hosts > /dev/null
then
echo "github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==" >> ~/.ssh/known_hosts
fi
これで、無効になっているコマンドをすべて取り除く必要ssh
がありStrictHostKeyChecking
ます。