如何解決 git ssh key permission denied (publickey) 的錯誤
- Leo
- 技術宅 ( tech geek)
- 2023年8月15日
目錄
最近在設定 git ssh-key 時發生了 Permission denied (publickey)
的問題。雖然網路上有很多相關的解決方案,但是都沒有解決我的問題。因此在這邊紀錄一下我遇到的問題及解決方案。
已經確認 .ssh
資料夾裡面已經有 key 了,也在 GitHub 上正確設定了,在其他電腦運作都沒問題。但是在這台電腦上卻一直出現 Permission denied (publickey)
的錯誤。
經過一翻排查後發現 Git Bash 的 $HOME
參數居然是在 SPB_Data
這個資料夾!
原來是 Cadence 會在安裝的時候添加一個 $HOME
的環境變量指到 C:\SPB_Data
這個路徑。
因為 Cadence 會需要這個環境變數,因此不能隨便刪除。但是為了避免 Git 混淆,只好透過下列方法來繞過這個衝突。
首先會需要以系統管理員身分修改兩個檔案 "C:\Program Files\Git\etc\nsswitch.conf"
& "C:\Program Files\Git\etc\profile"
來讓 Git 及相關的設定指到正確的路徑。
將 nsswitch.conf
的 db_home: env windows cygwin desc
改成 db_home: /%H
。
再在 profile
中添加 HOME="C:\Users\<username>"
參數指到正確的位置。
更改完成後,git 產生的 ssh key 就會在 "C:\Users\<username>\.ssh"
的路徑下,並且在 Git Bash 輸入 echo $HOME
看到的也會是正確的路徑了。