😊

GitHubへのSSH接続でパスワード聞かれるようになった

に公開

Daili Blogging21日目

Flutterで個人開発中なので、GitHubにリポジトリ作って色々コードをいじってる
GitHubはSSH接続しているけど、ある日突然git pullするときに秘密鍵のパスワード聞かれるようになった
パスワード入力したらgit pullはできるけど、何回も入力するのは面倒くさいのでまたパスワードなしで操作できるようにする。

使用マシンはmasOS

解決

結論からいうと、これで直った。

ssh-add ~/.ssh/id_rsa

原因

sshエージェントが再起動したことにより、登録されていた秘密鍵がなくなっていた

SSHエージェントってなに?

まぁ存在は知ってるけど詳細はそんなに知らないのでこれを機に色々調べた。
※SSH接続はこの記事が図があってわかりやすい

SSHエージェントとは、クライアント側で動作するプログラムであり
公開鍵認証方式の際に、メモリに格納されている秘密鍵を利用してSSH接続をしてくれる。
→秘密鍵のパスワード入力が不要になる。

注意点

sshエージェントに登録していた秘密鍵は、マシンの再起動などで削除されてしまうので、自動的なssh接続ができなくなる。
→秘密鍵の保持の永続化が必要

恒久対策

自分のmacOSでは秘密鍵の永続化してなかったので、マシンが充電切れで電源切れた時に秘密鍵の登録が解除されていたので、永続化する。
macOSの場合は、キーチェーンに秘密鍵を登録して、sshエージェントに秘密鍵が自動で登録されるようにする

  1. ~/.ssh/configに設定追記
  2. キーチェーンに秘密鍵登録
# ~/.ssh/configに追記
Host *
    AddKeysToAgent yes
    UseKeychain yes
    IdentityFile ~/.ssh/id_rsa # これは人によって変わる
# キーチェーンに登録
ssh-add --apple-use-keychain ~/.ssh/id_rsa

# 登録されているか確認
ssh-add -l

これでマシンを再起動してもパスワード聞かれなくなった

Discussion