Security

SSH接続の認証時に~/.ssh/id_* の公開鍵情報が全てサーバーに送られる?

投稿日:

上の記事を読みました。

大雑把にまとめると、こんな感じの内容です。

  • ssh コマンドを実行した際の認証時に、ssh-agent で保持している公開鍵と、~/.ssh/id_* に置いてある公開鍵の情報がすべてサーバーに送信される(認証できる公開鍵が検出されるまで)。
  • GitHub はユーザーが認証用に登録された公開鍵の情報を公開しており(これは知っていました)、この方はそのデータを収集している。
  • この方の管理するサーバー(whoami.filippo.io)にSSH接続すると、そのときに送信された公開鍵の情報を先程のデータに突き合わせることによって、どの GitHubアカウントが接続してきたのか分かる。実際このサーバーには、この動作を試すためのプログラムが設置されているので、ssh whoami.filippo.io というコマンドでテストできる。

紹介されているコマンドに -vvv オプションを指定(処理の詳細が出力されます)して試したところ、以下のことが分かりました。(ssh のバージョンは、OpenSSH_8.9p1 Ubuntu-3, OpenSSL 3.0.2 15 Mar 2022 です)

  • ssh コマンドをオプションなしで実行すると、ssh-agent で読み込んでいる鍵と、以下の鍵ファイルが候補として読み込まれて使われる。
    • ~/.ssh/id_rsa
    • ~/.ssh/id_ecdsa
    • ~/.ssh/id_ecdsa_sk
    • ~/.ssh/id_ed25519
    • ~/.ssh/id_ed25519_sk
    • ~/.ssh/id_xmss
    • ~/.ssh/id_dsa
  • ssh コマンドにオプション「-o “IdentitiesOnly=yes” -i ~/path/to/key-file」を指定して実行すると、このオプションで指定した鍵ファイル以外は使われない(ssh-agent で読み込んだ鍵も使われない)。
  • 自分で生成した ~/.ssh/id_rsa_foo のようなファイルが、勝手に読み込まれて使われることはなさそうだ(冒頭の記事にある「~/.ssh/id_* に該当する鍵ファイル」がすべて使われるわけではない)。

鍵ファイルはサービス、アカウント、デバイス等に応じてそれぞれ別に生成して使うと安全です。また、~/.ssh/config ファイルには、ssh接続先毎に、「IdentitiesOnly yes」や「IdentityFile」を指定するべきでしょう(「-o “IdentitiesOnly=yes” -i ~/path/to/key-file」を ssh コマンドのエイリアスに指定する方法もあります)。

参考

📂-Security

執筆者:labo


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

セッション管理の不備 by IPA「安全なウェブサイトの作り方 第7版」

安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構の、「セッション管理の不備」から一部抜粋する。(この資料はPDFでしか提供されていない) 目次セッションIDの推測セッションIDの盗用 …

no image

クロスサイト・スクリプティング対策 by IPA「安全なウェブサイトの作り方 第7版」

photo credit: XSS attack on YouTube via photopin (license) 安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構の、「クロスサイ …

no image

CSRF(クロスサイト・リクエスト・フォージェリ) by IPA「安全なウェブサイトの作り方 第7版」

安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構の、「CSRF(クロスサイト・リクエスト・フォージェリ)」から一部抜粋する。(この資料はPDFでしか提供されていない) 目次注意が必要 …

no image

IPA「SSL/TLS 暗号設定 ガイドライン」を基にしたウェブサーバーの設定例

SSL/TLS暗号設定ガイドライン~安全なウェブサイトのために(暗号設定対策編)~:IPA 独立行政法人 情報処理推進機構 を参考にして、実際にウェブサーバーのSSL設定をどう書けばよいのか?をメモし …

Web Security

XSS Auditor が有効になっているかチェックするためのページを作りました

目次1. XSS とは?2. XSS を防ぐためのブラウザの機能「XSS Auditor」3. Webブラウザの XSS Auditor 機能が有効かどうか調べる4. 参考 1. XSS とは? XS …