windows和linux下避免git clone和push时每次都需要输入用户名和密码
git 可以用 https 方式访问也可以用 ssh 方式访问
1)https:就是你每次要输入密码那种
2)ssh:用公钥私钥 本地用ssh-keygen生成密钥,分为 私钥和公钥,私钥本地保存,公钥放到服务端
方法一:https协议 配置全局开机存储认证信息
windows
参考:windows下git http协议保存用户名密码
打开个人文件夹,一般为C:\Documents and Settings\用户名,其中有一个.gitconfig的文件,使用记事本打开。如果之前配置了名字和email的话,在这里面会看到。
如何添加配置呢?
1)打开.gitconfig文件夹 追加如下配置
1 2
| [credential] helper=store
|
2)在终端(git bash)执行 执行之后,可以看到~/.gitconfig文件,也会多了上面那项 直接在
1
| git config --global credential.helper store
|
下次我们再次输入用户名之后,git就会记住用户名密码,以后就不需再输入了。
这时在上述那个目录底下,可发现生成另外一个文件.git-credentials,里面记录的就是用户名密码了。格式如下:
1
| https://{username}:{password}@github.com
|
linux
参考:Linux之解决每次git pull/git push都需输入密码设置
1 2 3 4 5 6 7 8 9 10 11
| cd / git config --global credential.helper store
[credential] helper = store
cd到项目目录,执行git pull,会提示输入账号密码。输完这一次以后git pull或git push就不在需要输入密码了(会在根目录生成一个 .git-credentials 文件)
over!!!
|
其实和windows是一样的!
方法二:ssh协议
本地用ssh-keygen生成密钥,分为 私钥和公钥,私钥本地保存,公钥放到服务端
linux
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| [root@ubuntu-22 ~] find: ‘/run/user/1000/doc’: Permission denied find: ‘/run/user/1000/gvfs’: Permission denied /snap/core20/1587/usr/bin/ssh-keygen /snap/core20/1587/usr/share/bash-completion/completions/ssh-keygen /usr/share/bash-completion/completions/ssh-keygen /usr/bin/ssh-keygen [root@ubuntu-22 ~] [root@ubuntu-22 ~] Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa Your public key has been saved in /root/.ssh/id_rsa.pub The key fingerprint is: SHA256:fyr7kENOycEK99SmHaYL3b5tPozhbvykX5ZNUtEai94 root@ubuntu-22 The key's randomart image is: +---[RSA 3072]----+ | ..| | . . . o| | . . + = . +.| | o * X .. o. | | o S o. .. .| | = =. . E= | | *oo+o + .| | .o=B+o | | .**==. | +----[SHA256]-----+ [root@ubuntu-22 ~]# [root@ubuntu-22 ~]# cd .ssh [root@ubuntu-22 .ssh]# ll total 20 drwx------ 2 root root 4096 1月 29 17:07 ./ drwx------ 6 root root 4096 1月 29 17:06 ../ -rw------- 1 root root 2602 1月 29 17:07 id_rsa -rw-r--r-- 1 root root 568 1月 29 17:07 id_rsa.pub -rw-r--r-- 1 root root 142 1月 29 17:06 known_hosts [root@ubuntu-22 .ssh]# [root@ubuntu-22 .ssh]# cat id_rsa.pub ssh-rsa ... root@ubuntu-22
|
github 设置 把这个公钥放到github的ssh中
这下通过git clone ssh的方式就可以成功clone下来了
1 2 3 4 5 6 7
| [root@ubuntu-22 ~] Cloning into 'xxx'... remote: Enumerating objects: 3, done. remote: Counting objects: 100% (3/3), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (3/3), done.
|
git push也可以了
参考:github设置添加SSH