为了避免每次push都输入密码,按照github的要求配置了ssh key后,明明
ssh -T git@github.com
都可以返回正确的结果,但是在push的时候还是要求输入用户名跟密码。
搜索了一番之后在StackOverflow看到了这个答案
SSH Key - Still asking for password and passphrase
If you work with
HTTPs
urls, it’ll always ask for your username / password.If you’re correctly using
SSH
when cloning / setting remotes. Then make sure you have a ssh-agent to remember your password. That way, you’ll only enter your passphrase once by terminal session.If it is still too annoying, then simply set a ssh-key without passphrase.
看了下个人项目下的.git/config
里的配置,果然是使用https
传输
根据github的这个doc,修改成ssh
传输方式后尝试。
还是不行,在push
的时候依然显示git-remote-https
,而不是走ssh
,为什么呢?想想应该是这个repo的原因,是不是在hexo deploy
的时候执行了什么优先级更高的命令。
搜索了下,要在_config.yml
里的deploy相应修改才可以,并且如果在更换为ssh
模式之前使用https进行过部署,则要先把.deploy_git
文件夹删除掉
运行rm -rf .deploy_git
即可
要多这一步的原因是,hexo d
这个命令是根据_config.yml
文件里的配置来部署的。因而如果是正常的repo
进行到前一步就够了,类似hexo
的东西则需要在配置文件中再进行相应的修改。
修改后就正常走ssh
了,push
时也不再需要输入账号密码