赞
踩
git config的三个作用域:
临时文件 当前git工程目录
用户全局配置 ~/.ssh
系统级配置 /Git/etc/ssh
git config --local //只对某个仓库有效
git config --global //对当前用户的所有仓库有效
git config --system //对系统所有登录用户有效
显示config的配置,加–list
git config --list --local //只对某个仓库有效
git config --list --global //对当前用户的所有仓库有效
git config --list --system //对系统所有登录用户有效
--global
表示全局的,即当前用户都有效,该配置会出现在 ~/.gitconfig
文件中,~
表示当前用户的目录git config --global user.name "username"
git config --global user.email "email"
/.git/config
文件下git config user.name "username"
git config user.email "email"
git config --replace-all user.name "name"
git config --replace-all user.email "abc@eeee.com"
git log
git status
git add .
git commit -m "提交信息"
git commit --amend //追加提交
git reset --hard
git rebase
git push
git fetch
git pull
ssh-keygen -t rsa -C "your_email@example.com" -f "文件名"
代码参数含义:
-t 指定密钥类型,默认是 rsa ,可以省略。
-C 设置注释文字,比如邮箱。
-f 指定密钥文件存储文件名。
这步网上很多,我随便dawn了别人的一段
主要是这行
ssh-keygen -t rsa -C "邮箱名字"
$ ssh-keygen -t rsa -C "1634363254@qq.com" Generating public/private rsa key pair. Enter file in which to save the key (/d/MyBlog/.ssh/id_rsa): /c/users/janking/.ssh/gitee_id_rsa Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /c/users/janking/.ssh/gitee_id_rsa. Your public key has been saved in /c/users/janking/.ssh/gitee_id_rsa.pub. The key fingerprint is: SHA256:u5Qymut+JLvtu1ohlSuvw9c+tlul0xtjvcsEfh8YMME 1634363254@qq.com The key's randomart image is: +---[RSA 2048]----+ | .. | | . E. | | o o | | . . o | | o o S o. | | .+.. o = oo | | . +=.+ + *.+. | | +*o++o o B o.|
默认生成的密钥文件的名字为id_rsa
id_rsa.pub
,分别是私钥和公钥.将公钥复制到服务器上配置好就行.
但有时,本地使用多个账号时,想在不同服务器上使用不同的密钥. 于是本地生成 id_rsa_one,id_rsa_two
类似这样
上面的步骤,如果啥都不操作的话,ssh解析时 只会使用默认的这个 id_rsa的密钥.如果服务器上配置的是id_rsa_two.其结果就会提示你没有权限
Cloning into 'demo'...
remote: Unauthorized
fatal: Authentication failed for 'http://www.baidu.com/aaa/bbb/ccc/'
两种方法
1 ssh-add
此方法是将密钥添加到ssh-agent的高速缓存中
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/id_github_rsa
如果报下面的错误
Could not open a connection to your authentication agent.
输入
$ ssh-agent bash
再输入上面的命令
展示已经添加的密钥
ssh-add -l
2 创建配置文件,想ssh说明,当前我有哪些密钥可以使用
在.ssh目录下,新建config
配置文件。
建不同的 网址===密钥 建立映射关系
#gitlab Host github.app.cn HostName githubcn(别名) PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_hd Port 10080 #github Host github.com HostName githubcom(别名) PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_github # 配置文件参数 # Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件 配置本小节被命中的条件,比较的对象是“命令行中输入的host name” # HostName : 表示SSH Server所在机子的域名,支持完整域名,缩写别名,IP地址,也支持“%h”这个转义序列,该转义序列指代“命令行中输入的host name”。 # User : 登录名 # IdentityFile : 建立SSH连接使用的私钥文件。 # Port : 指定SSH Server所监听的端口。 # ForwardAgent : 是否将“公钥私钥验证匹配计算过程”递交给ssh-agent程序处理。
参考
1 Git添加多个SSH密钥连接远程库
2 GIT配置SSH以及多账户配置
3 用户手册
4 ssh用户手册
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。