症状
- フェッチ等の画面で、
Putty 鍵の自動ロード
がグレーアウトしている。 - 以下のようなエラーが出る
git.exe fetch -v --progress "****"
****: Permission denied (publickey,keyboard-interactive).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
gitは正常に終了しませんでした (終了コード 128)
設定は、
ToitoiseGit -> 設定 -> ネットワーク -> SSHクライアント
に、Git のssh.exe
を指定。
ToitoiseGit -> 設定 -> リモート -> Putty 鍵
に、秘密鍵から生成した PUTTY鍵 を指定。
解決方法
-
ToitoiseGit -> 設定 -> ネットワーク -> SSHクライアント
に、ToitoiseGitのTortoiseGitPlink.exe
を使う。
そうすると、Putty 鍵の自動ロード
のチェックが付けられるようになる。チェックを付けることで、上記のリモート -> Putty 鍵
の設定が有効になり、アクセスする時にこの値を読み取り、画面右下のシステムトレイの Pagent に key を自動登録してくれる、という仕組みらしい。
(画面右下のPagent
は、TortoiseGitPlink.exe
の一部であるもよう。)
他の解決方法としては、以下も考えられる。
- Git の ssh.exe を使う場合は、ユーザフォルダの
.ssh
に適切な名前の秘密鍵を置いてやる - 自動ロードを使わない場合は、TortoiseGitPlink.exe にした上で、画面右下の Pagent に手動で
Add Key
してやる
ちなみに、ユーザー情報は編集不要。編集してもリモート側からはその鍵のユーザとして扱われる。
ハマった発端
逆に、新規に作成した Git リポジトリから、何も設定していないのに認証が通って、プライベート設定しているリモート側から clone やら fetch やらできてしまって、焦って色々やったら今度は全く繋がらなくなったという話。(同じPCで最初の環境構築をやったので、その設定が Pagent に残っていて、暗黙にそのキーで接続にいって、成功していたというオチ)