首先確認(rèn)下你的Linux/Mac/Wins當(dāng)前用戶對(duì)于 git 工程所在的本地文件夾, 是否具有777權(quán)限,沒有的話,先設(shè)置一下.
因?yàn)榧词鼓惆?root 用戶的 ssh 加到 GitHub 后, 操作系統(tǒng)的子賬戶并不能具有 ssh 的權(quán)限.
如果具有777權(quán)限,可以進(jìn)行下面的檢查:
下面的方案前提是你對(duì)文件夾有777權(quán)限.
電腦只有一個(gè)git環(huán)境
如果你的電腦只有一個(gè)git環(huán)境燥筷,那么極大多數(shù)情況是由于 GitHub 賬號(hào)沒有設(shè)置 ssh 公鑰信息所致。 前往 GitHub 網(wǎng)站的"account settings"
依次點(diǎn)擊"Setting -> SSH Keys"->"New SSH key"
Title處填寫“id_rsa.pub”或其他任意信息院崇。 key處原樣拷貝下面命令的打印 ~/.ssh/id_rsa.pub
文件的內(nèi)容:
cat ~/.ssh/id_rsa.pub # 控制臺(tái)上輸出內(nèi)容
pbcopy < ~/.ssh/id_rsa.pub # 自動(dòng)拷貝到粘貼板
如沒有則按下述方法生成:
ssh-keygen -t rsa
輸入文件名的地方輸入可以輸入自定義文件名肆氓,默認(rèn)是id_rsa,然后一路回車......
注意如果自定義文件名的話底瓣,需要加一個(gè)config文件谢揪,下文有介紹。
最后捐凭,輸入
ssh -T git@github.com
如果沒有報(bào)錯(cuò)拨扶,
再嘗試輸出就應(yīng)該有了
cat ~/.ssh/id_rsa.pub # 控制臺(tái)上輸出內(nèi)容
pbcopy < ~/.ssh/id_rsa.pub # 自動(dòng)拷貝到粘貼板
或者說設(shè)置了 sshkey 還是 permission denied 怎么回事?
回到如下命令,檢查當(dāng)前配置的SSH對(duì)應(yīng)的git賬號(hào)柑营;
ssh -T git@github.com
然后用如下命令(id_rsa對(duì)應(yīng)目標(biāo)賬戶的私鑰)命令屈雄,制定目標(biāo)Git賬號(hào)
ssh-add -K ~/.ssh/id_rsa
電腦有多個(gè)git環(huán)境
如果嘗試了上面的方法還是不行,那么可能你用了多個(gè)密鑰官套,你在新建秘鑰的時(shí)候使用了自定義的名稱,比如 github_rsa蚁孔,你需要再配置一個(gè) config 文件
cd ~/.ssh/
vi config
輸入以下內(nèi)容:
Host github
User git
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_rsa
ServerAliveInterval 300
ServerAliveCountMax 10
ESC+:wq保存退出
重新嘗試以下命令即可搞定:
注意??:@ 符號(hào)前后的參數(shù)要與上面 User 和 HostName對(duì)應(yīng)上奶赔,一般公司內(nèi)部的代碼倉庫都是自定義的,注意修改上面的參數(shù)然后再匹配下面的進(jìn)行測(cè)試:
ssh -T git@github.com
ssh-add -K ~/.ssh/github_rsa