針對(duì)問題:
Could not open a connection to your authentication agent.
Permission denied (publickey).
從github上clone代碼的時(shí)候,推薦使用ssh連接他炊,那么就要在自己的電腦上配置好ssh的公鑰蛆楞。
官方的文檔在這里
https://help.github.com/articles/connecting-to-github-with-ssh/
由于我自己的電腦已經(jīng)生成過其它網(wǎng)站的ssh key控淡,所以默認(rèn)的文件名id_rsa被占用了,
所以需要手動(dòng)指定公鑰文件的地址入篮,加到ssh key的列表中去
ssh-add -l
可以查看當(dāng)前添加的ssh key和文件路徑贾惦,默認(rèn)是保存在~./ssh 文件夾下面
但是在windows上運(yùn)行這行命令的時(shí)候報(bào)錯(cuò)了
$ ssh-add
Could not open a connection to your authentication agent.
然后試了一下連接github
$ ssh -T git@github.com
git@github.com: Permission denied (publickey).
在官網(wǎng)上看了一下癣诱,其實(shí)就是ssh的公鑰沒加進(jìn)去導(dǎo)致的盹沈。
然后就有了下面的操作
把生成的ssh key添加到ssh agent中
點(diǎn)擊查看如何將key add to ssh agent agent
$ eval $(ssh-agent -s)
Agent pid 59566
$ ssh-add path/to/your/file
然后龄章,在這個(gè)目錄下就可以成功使用這個(gè)key與github連接了。
但是乞封,
有個(gè)比較奇葩的問題做裙,換了個(gè)目錄,就會(huì)授權(quán)失敗肃晚,我不知道大家有沒有這個(gè)問題锚贱,反正在我的windows 10上出現(xiàn)了,但是mac卻不會(huì)关串,我觀察了一下拧廊,大概是因?yàn)閙ac打開terminal的時(shí)候自動(dòng)會(huì)啟動(dòng)ssh agent杂穷,就是類似是全局的,在windows上的agent作用的范圍只在當(dāng)前的路徑下卦绣,因?yàn)樗窃诋?dāng)前的路徑下啟動(dòng)的,所以我又在Google上找了一下如何自動(dòng)啟動(dòng)ssh agent飞蚓,然后查到了下面的內(nèi)容:
在打開git bash的時(shí)候自動(dòng)啟動(dòng)ssh agent
在C:/Users/userName/ 目錄下滤港,新建一個(gè).profile文件,粘貼以下內(nèi)容:
env=~/.ssh/agent.env
agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }
agent_load_env
# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi
unset env
然后重啟git bash趴拧,一打開就提示
Identity added: ......
手動(dòng)將key文件添加到ssh agent
ssh-add path/to/file
換個(gè)路徑溅漾,檢測能否連接github.com
ssh -vT git@github.com
如果提示授權(quán)成功,則表示ssh key已經(jīng)全局添加成功了著榴。