まとめ
- スマートフォンアプリと Kr cli とのペアリングをやり直すには
kr pair
を実行する。- Pair your computer
Already paired, unpair current session? [y/N]
と尋ねられるのでy
と答えて既存のペアリング状態を解除する。
- エラー
Public key for github.com does not match pinned key. If the host key has actually changed, remove the pinned key in Krypton.
への対応は、スマートフォンアプリにある Known Hosts を削除すればよい。- https://github.com/kryptco/kr/issues/118#issuecomment-422001887
- 上記を頼りにアプリの developler タブ (
{ }
のタブ) の "Edit Known Hosts" から "Known Hosts" ページへアクセスし、 github.com 項目をスワイプして削除する。
背景
- GitHub にプッシュできなくなった。
- スマートフォンアプリと Kr cli とのペアリングをやり直そうと思った。
- スマートフォンを買い替えたので、新しいスマートフォンからペアリングを行うことにした。
GitHub にプッシュできなくなった時のエラー。
laravel9-boilerplate on main [⇡]
❯ git push origin main
Krypton ▶ Requesting SSH authentication from phone
Krypton ▶ Phone approval required. Respond using the Krypton app
Krypton ▶ Public key for github.com does not match pinned key. If the host key has actually changed, remove the pinned key in Krypton.
sign_and_send_pubkey: signing failed for RSA "/Users/oki2a24/.ssh/id_krypton" from agent: agent refused operation
no such identity: /Users/oki2a24/.ssh/id_ed25519: No such file or directory
no such identity: /Users/oki2a24/.ssh/id_rsa: No such file or directory
no such identity: /Users/oki2a24/.ssh/id_ecdsa: No such file or directory
no such identity: /Users/oki2a24/.ssh/id_dsa: No such file or directory
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
laravel9-boilerplate on main [⇡] took 6s
WSL で Krypton を使ってみる記録 – oki2a24 を参考に解決を試みました。
- 寄り道。
kr upgrade
- Pair your computer 。PC とスマホをペアリングする。
- 公開鍵を GitHub に登録する。
- 旧スマホの秘密鍵に対応する公開鍵を GitHub から削除する。
寄り道。 kr upgrade
kr
を実行したところ、コマンド自体のアップグレードが出来るようなので、少し寄り道してまずこれを実行しました。
❯ kr
NAME:
kr - communicate with Krypton and krd - the Krypton daemon
USAGE:
kr [global options] command [command options] [arguments...]
VERSION:
2.4.13
COMMANDS:
pair Initiate pairing of this workstation with a phone running Krypton
me Print your SSH public key
codesign Setup Krypton to sign git commits
copy Copy your SSH public key to the clipboard
hosts Distribute & manage SSH known hosts for your team
pin Pin a host's SSH public keys
unpin Unpin a host SSH public key
team Krypton Teams settings
env Print useful environment variables for configuring kr/krd
sshconfig Verify SSH is configured to use Krypton
transfer Authorize a new Krypton device to access of your servers
aws,bitbucket,digitalocean,gcp,github,ghe,gitlab,heroku Upload your public key this service
add Add a Krypton SSH public key to a < user@server or SSH alias >
remove, rm Remove SSH public keys from < user@server or SSH alias >
list, ls List which team members have access to a server
restart Restart the Krypton daemon
upgrade Upgrade Krypton on this workstation
unpair Unpair this workstation from a phone running Krypton
uninstall Uninstall Krypton from this workstation
debugaws Check connectivity to AWS SQS
GLOBAL OPTIONS:
--help, -h show help
--version, -v print the version
~
❯
実行してみましたところ、最新だったようです。 Homebrew でインストールしており、定期的にそちらでアップグレードしていたからですね。
~
❯ kr upgrade
Upgrade Krypton on this workstation? [y/N] y
Running `brew update --auto-update`...
==> Auto-updated Homebrew!
==> Updated Homebrew from 1a8f9ac70 to cf629b117.
No changes to formulae.
Warning: kryptco/tap/kr 2.4.13 already installed
~ took 8s
❯
Pair your computer 。PC とスマホをペアリングする。
ドキュメント通り、 kr pair
を実行しました。
すでにペアリングしてあった状態からのスタートだったため、アンペアするかどうかを尋ねられましたので、 Yes としました。
~
❯ kr pair
Already paired, unpair current session? [y/N] y
... QR コード画像が表示された。略 ...
Scan this QR Code with the Krypton mobile app to connect it with this workstation. Maximize the window and/or lower your font size if the QR code does not fit.
Paired successfully with identity
ssh-rsa A ... 略 ... = iPhone14ProMax
~ took 52s
❯
公開鍵を GitHub に登録する。
My Public Key に従い、 kr github
を実行しました。
~
❯ kr github
SSH public key copied to clipboard.
Press ENTER to open your web browser to GitHub. Then click "New SSH Key" and paste your public key.
~ took 11s
❯
自動的に SSH and GPG keys ページが開きました。 "New SSH Key" から次の内容を入力し、 "Add SSH Key" をクリックして SSH 公開鍵を登録しました。
- title: Krypton2
- Key type: Authentication Key
- Key:
kr github
実行時にクリップボードにコピーされた内容
GitHub への接続テスト
Testing your SSH connection – GitHub Docs に従ってテストしました。
~ took 11s
❯ ssh -T git@github.com
Krypton ▶ Requesting SSH authentication from phone
Krypton ▶ Phone approval required. Respond using the Krypton app
Krypton ▶ Public key for github.com does not match pinned key. If the host key has actually changed, remove the pinned key in Krypton.
sign_and_send_pubkey: signing failed for RSA "/Users/oki2a24/.ssh/id_krypton" from agent: agent refused operation
no such identity: /Users/oki2a24/.ssh/id_ed25519: No such file or directory
no such identity: /Users/oki2a24/.ssh/id_rsa: No such file or directory
no such identity: /Users/oki2a24/.ssh/id_ecdsa: No such file or directory
no such identity: /Users/oki2a24/.ssh/id_dsa: No such file or directory
git@github.com: Permission denied (publickey).
~ took 12s
❯
失敗しました。
トライアルアンドエラー。 Public key for github.com does not match pinned key. If the host key has actually changed, remove the pinned key in Krypton.
最初のエラーと同じです。ここでようやくエラーメッセージで検索し、調査しました。
上記を頼りにアプリの developler タブ ({ }
のタブ) の "Edit Known Hosts" から "Known Hosts" ページへアクセスし、 github.com 項目をスワイプして削除しました。
もう一度接続確認をしてみたところ、今度は成功しました!
❯ ssh -T git@github.com
Krypton ▶ Requesting SSH authentication from phone
Krypton ▶ Phone approval required. Respond using the Krypton app
Krypton ▶ Success. Request Allowed ✔
Hi oki2a24! You've successfully authenticated, but GitHub does not provide shell access.
~ took 4s
❯
旧スマホの秘密鍵に対応する公開鍵を GitHub から削除する。
SSH and GPG keys ページから、古い公開鍵を削除しました。
おわりに
根本の原因は Known Host にあったというオチでした。とはいえ、どのみちスマートフォンも変えたので、新しいスマホでペアリングできたのはよかったです。
以上です。