🦀
1PasswordでGitHubのssh鍵を管理している際のcargoでのつまづきポイント
自分はGitHubのssh鍵を1Passwordで管理しているのだが、Rustプロジェクトのビルド時に依存しているリポジトリのダウンロードに失敗してしまった。
Caused by:
failed to authenticate when downloading repository: ssh://git@github.com/***/***.git
* attempted ssh-agent authentication, but no usernames succeeded: `git`
if the git CLI succeeds then `net.git-fetch-with-cli` may help here
https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli
Caused by:
no authentication methods succeeded
cargoのログが丁寧に解説してくれているとおりで ssh-agent
を使おうとして失敗しているため git
コマンドを利用するよう設定すれば良い。
具体的には ~/.cargo/config.toml
に以下の記述を追加すればOK。無ければ作る。
[net]
git-fetch-with-cli = true
ちなみに config.toml
はいろんな場所に置けるのでスコープを切りたいときは適当な場所に配置することもできるが、この設定に関してはグローバルであって何の問題もないと思うので自分は ~/.cargo/
に置いている。
その他の有効なパスに関してはThe Cargo Book / Configuration / Hierarchical structureを参照すると吉。
Discussion