每次使用git推送代码到远程,都需要输入账号密码,是不是觉得很烦,以下教程就是解决这类问题
我们可以用ssh密钥来进行验证,并将ssh密钥添加到ssh-agent,这样每次我们操作远程仓库时都不需要再输入用户名和密码了,是不是很爽呢? 详细步骤如下:
1.检查本地有没有现成的可用的ssh key(我的本机已添加好ssh key)
- ls -al ~/.ssh
[root@izwz9ajr022qhjwcw7eeu5z ~]# ls -al ~/.ssh
total 20
drwx------ 2 root root 4096 Mar 29 22:45 .
dr-xr-x--- 7 root root 4096 Mar 28 14:47 ..
-rw------- 1 root root 0 Feb 17 22:27 authorized_keys
-rw------- 1 root root 1675 Mar 23 23:41 id_rsa
-rw-r--r-- 1 root root 410 Mar 23 23:41 id_rsa.pub
-rw-r--r-- 1 root root 803 Mar 29 22:59 known_hosts
2.若没有可用的ssh key则需要手动添加:
- ssh-keygen -t rsa -b 4096 -C “your_email@example.com”
[root@izwz9ajr022qhjwcw7eeu5z ~]# ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)?
在此处会提示输入密码,最好不要为空,但是也不需要记住(如果后面不需要改的话),随便输入一些字母数字即可
3.将创建好的ssh key添加进ssh-agent:
首先确保ssh-agent已启用
- eval “$(ssh-agent -s)”
[root@izwz9ajr022qhjwcw7eeu5z ~]# eval "$(ssh-agent -s)"
Agent pid 12828
有显示pid就表示已经启用了
执行添加
- ssh-add ~/.ssh/id_rsa
[root@izwz9ajr022qhjwcw7eeu5z ~]# ssh-add ~/.ssh/id_rsa
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
4.将公钥的内容添加到你的github账户:
首先cd到~/.ssh目录,打开id_rsa.pub文件,复制其中的内容(不能有任何缺失或多余空白符及其它字符),按照如下步骤添加到你的github账户:
- 找到setting,并点击
- 点击SSH and GPG keys
- 点击New SSH key
- 设置title(可选),将公钥的内容粘贴进key下面的文本域,点击Add SSH key
5.修改远程项目地址为SSH传输方式
- git remote add origin git@github.com:username/repositorie.git
username为你的github用户名,repositorie为仓库名称,例如:git@github.com:crmzhangwei/test.git
[root@izwz9ajr022qhjwcw7eeu5z wordpress]# git remote -v
origin git@github.com:crmzhangwei/wordpress.git (fetch)
origin git@github.com:crmzhangwei/wordpress.git (push)
完成
