2018年5月29日 星期二

github ssh 設定好了還是被要求輸入密碼

Github ssh 設定好了還是被要求輸入密碼

遇到的問題是明明都已經設定好了金鑰,打測試代碼
ssh -T git@github.com
也是顯示成功,怎麼還是需要打密碼?
整個重做步驟不是很多,我就重頭開始說當作一篇教學文章

生成金鑰

可以確定一下自己有沒有產生過
ls -l ~/.ssh/
看一下列表有沒有 id_rsa id_rsa.pub 這兩個文件有的話就有產生了
產生的指令是
ssh-keygen
然後就可以查看公鑰
cat ~/.ssh/id_rsa.pub
把顯示出來的部份複製然後貼到 github 上的
點自己頭像 -> 設定 -> SSH and GPGkey
然後整串看起來是亂碼的的輸入,不打名稱預設會填入這台電腦的電腦名稱
然後會看要鑰匙是黑色的因為還沒連成功過,我們測試一下
ssh -T git@github.com
跑出
Hi USERNAME! You’ve successfully authenticated, but GitHub does not provide shell access.
這樣就是成功了,鑰匙就會變成綠色的就是真的好了

更改 remote

然後就是問題所在了,明明測試都是成功依然要打密碼,網路上也沒搜到相關的說明。
關鍵在於第一次從 github 上創建 github 倉庫的時候預設都是 https 你得自己改選成 ssh才行,這時候上面的給的教學指令會變動成 ssh 用的。
[1] 如果你是建立新倉庫記得按成SSH然後照著說明打就好,以下不用看
[2] 這不是 github 網站上的設定,主要是倉庫的 gitconfig 要改
那麼已經再同步的倉庫怎麼辦呢~我們要手動到去修改,這裡假設倉庫名稱是 sshRepos
cd sshRepos
git remote -v
然後你會看到其中的一段是
(其中的 USERNAME 是使用者帳號記得改)
origin  https://github.com/USERNAME/sshRepos.git (fetch)
origin  https://github.com/USERNAME/sshRepos.git (push)
問題就出在這裡,正確的SSH連接應該為
( 從 https://github.com -> git@github.com )
把他刪除重建成正確的即可
git remote remove origin
git remote add origin git@github.com:/USERNAME/sshRepos.git

git remote -v
最後上傳一次確定是否還需要打密碼
git push origin master

其他

直接進 gitconfig 修改應該是比較快,指令如下
vi .git/config
然後你會看到
[remote "origin"]
        url = https://github.com/USERNAME/sshRepos.git
        fetch = +refs/heads/*:refs/remotes/origin/*
就從這裡改~
  1. https://git@
  2. USERNAME 前面的 /: (改成冒號)

沒有留言:

張貼留言