如何通过ssh与Git远程仓库建立加密连接
2015-03-01 11:44
447 查看
以Git@OSC为例
SSH key 可以让你在你的电脑和 Git @ OSC 之间建立安全的加密连接。但权限很重要,key这东西对权限有很严格的限制。登录端的 .ssh目录权限是ssh-keygen自己生成的不要乱改。默认.ssh目录是700 , id_rsa 是600,不能多也不能少,如果有写的权限会导致 ssh认为这个文件不可靠,可能被改写。被登录的机器 .ssh 目录是 700 至少不能有写的权限,id_rsa.pub的权限是644。
你可以按如下命令来生成sshkey:
查看你的public key,并把他添加到远程服务器上。
添加后,在终端(Terminal)中输入
若返回
则证明添加成功。若为 github,返回
生成 ssh key 的邮箱必须是该 Git 仓库登陆的邮箱,若多个 Git 仓库使用不同邮箱注册,则需要生成多对 ssh key,并分别命名。注意,此处与服务器无关,只跟邮箱有关。即,如果你 github 跟 OSChina 的账号均为同一个邮箱,就无需配置两对不同的 ssh key。但如果你有两个不同邮箱注册的 github账号,则需要对应生成不同的两对 ssh key。为了使不同的 ssh key 对应上不同的 Git 仓库,我们需要在.ssh/目录下新建config文件。
Host 中的 anything 是一个别名,可随意命名。注意,进行远程连接时,必须把 github.com 替换成 anything.github.com。譬如,
或者
同一个服务器下多个注册账号的 config 文件该如何写此处就不举例了。
配置完 config 文件,还有一个地方需要注意,就是 .gitconfig 文件。
此时将不能在多个仓库下通用 global 级别的 .gitconfig 了。如果 .gitconfig 下的邮箱与 Git 仓库的注册邮箱不符,可能会导致无法获得仓库的写入权限,或者显示为未授权的开发者邮箱。需要考虑使用 repo 下的 .gitconfig 文件分别配置。
通过SSH与git@github.com建立加密连接的官方文档:
https://help.github.com/articles/generating-ssh-keys/
参考文章列表:
ssh key 免密码登录
帮助·oschina
SSH key 可以让你在你的电脑和 Git @ OSC 之间建立安全的加密连接。但权限很重要,key这东西对权限有很严格的限制。登录端的 .ssh目录权限是ssh-keygen自己生成的不要乱改。默认.ssh目录是700 , id_rsa 是600,不能多也不能少,如果有写的权限会导致 ssh认为这个文件不可靠,可能被改写。被登录的机器 .ssh 目录是 700 至少不能有写的权限,id_rsa.pub的权限是644。
你可以按如下命令来生成sshkey:
$ ssh-keygen -t rsa -C "xxxxx@xxxxx.com" # Creates a new ssh key using the provided email $ 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. 私钥
查看你的public key,并把他添加到远程服务器上。
$ cat ~/.ssh/id_rsa.pub # ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
添加后,在终端(Terminal)中输入
$ ssh -T git@git.oschina.net
若返回
$ Welcome to Git@OSC, yourname!
则证明添加成功。若为 github,返回
Hi yourname! You've successfully authenticated, but GitHub does not provide shell access.
生成 ssh key 的邮箱必须是该 Git 仓库登陆的邮箱,若多个 Git 仓库使用不同邮箱注册,则需要生成多对 ssh key,并分别命名。注意,此处与服务器无关,只跟邮箱有关。即,如果你 github 跟 OSChina 的账号均为同一个邮箱,就无需配置两对不同的 ssh key。但如果你有两个不同邮箱注册的 github账号,则需要对应生成不同的两对 ssh key。为了使不同的 ssh key 对应上不同的 Git 仓库,我们需要在.ssh/目录下新建config文件。
# github Host anything.github.com // 主机名字,不能重名 HostName github.com // 主机所在域名或IP Port 22 // 端口,可不写 User MissYasiky // 用户名称 IdentityFile ~/.ssh/id_rsa_home // 私钥路径
Host 中的 anything 是一个别名,可随意命名。注意,进行远程连接时,必须把 github.com 替换成 anything.github.com。譬如,
$ git clone git@anything.github.com:username/repo.git
或者
$ git remote add origin git@anything.github.com:username/repo.git
同一个服务器下多个注册账号的 config 文件该如何写此处就不举例了。
配置完 config 文件,还有一个地方需要注意,就是 .gitconfig 文件。
此时将不能在多个仓库下通用 global 级别的 .gitconfig 了。如果 .gitconfig 下的邮箱与 Git 仓库的注册邮箱不符,可能会导致无法获得仓库的写入权限,或者显示为未授权的开发者邮箱。需要考虑使用 repo 下的 .gitconfig 文件分别配置。
通过SSH与git@github.com建立加密连接的官方文档:
https://help.github.com/articles/generating-ssh-keys/
参考文章列表:
ssh key 免密码登录
帮助·oschina
相关文章推荐
- 如何通过ssh的方式连接git及修复yosemite的git版本的https问题
- SSH -- 建立本地GIT仓库和Github的连接
- git 远程仓库和本地仓库建立连接
- Git使用基本方法二(通过SSH加密传输连接git服务器)
- Ubuntu通过SSH远程登录服务器建立登陆用户与连接
- 如何通过ssh远程连接linux系统
- 局域网如何通过SSH 2连接上VMware 10虚拟机新装的centOS系统远程登录
- 通过git remote 建立远程仓库
- 本地Git仓库与远程Github仓库的SSH连接配置
- Git在mac中和远程仓库建立连接
- 如何通过git将项目推送到github远程仓库
- 本地新建GitHub远程仓库SSH连接,git init 及 clone的操作记录
- 本地如何配置git环境连接远程代码仓库
- git----------SourceTree如何连接ssh的仓库地址,这里记录的是客户端需要做的事