Flutter git@github.com: Permission denied (publickey)で落ちる
このエラーに2回ぶち当たってやっと原因と解決策が分かったんので
メモ代わりに解決方法を載せておきます。
問題
Android Studioでpubspec.yamlをPackage getした時に落ちてしまう。
エラーログ
Git error. Command: git clone --mirror git@github.com:xxxx/yyyyy.flutter.git /Users/userName/.pub-cache/git/cache/xxxxx.flutter-zzzzzzzzzzz
Cloning into bare repository '/Users/userName/.pub-cache/git/cache/xxxxxx.flutter-zzzzzzzzz'...
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.
pub get failed (69) -- attempting retry 1 in 1 second...
Git error. Command: git fetch
fatal: not a git repository (or any of the parent directories): .git
// 以下省略
原因
原因としてはいくつかあります。
①cacheファイルが邪魔をしている
②sshキーにパスフレーズを設定している←今回自分が詰まった
解決策
①の場合
/flutter/.pub-cache/git直下にあるフォルダ・ファイルを全て削除する(FlutterSDKのものなので全てのプロジェクトに依存します。)
そして再度Packages getすれば解決できます。
もし、下記のエラーが表示された場合、
Waiting for another flutter command to release the startup lock...
ロックがかかっているので、
/flutter/bin/cacheのlockfileを削除し、再度Packages getで解決できます。
②の場合
①をやっても解決できない場合はsshキーを作成した時にパスフレーズを設定している場合の可能性があります。
解決策は
1. ①と同様に.pub-cacheの中身を全て削除+ lockfileを削除
2. Android StudioのPackages getではなく、terminalからflutter packages getコマンドでインストールを行う
パスフレーズを設定している場合はAndroid Studioのpackages getボタンからダウンロードするとsshの許可問題で断られます。
なのでターミナル経由で行いましょう。
Enter passphrase for key '/Users/userName/.ssh/i ⣽.. ⣟
そうするとターミナルに上記が表示されるので、sshのパスフレーズを入力すればダウンロードできます!
快適なFlutterライフを!
この記事が気に入ったらサポートをしてみませんか?