今天宠物迷的小编给各位宠物饲养爱好者分享git设置ssh的宠物知识,其中也会对以及git如何使用ssh密钥(将ssh密钥添加到g进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!
初次安装git需要配置用户名和邮箱,否则git会提示:please tell me who you are. 你需要运行命令来配置你的用户名和邮箱: $ git config --global user.name "superGG1990" $ git config --global user.email "superGG1990@163***m" 注意:(引号内请输入你自己设置的名字,和你自己的邮箱)此用户名和邮箱是git提交代码时用来显示你身份和联系方式的,并不是github用户名和邮箱 git使用ssh密钥 git支持https和git两种传输协议,github分享链接时会有两种协议可选: git协议链接图例 : ↓ https协议链接图例:↓ git使用https协议,每次pull, push都会提示要输入密码,使用git协议,然后使用ssh密钥,这样免去每次都输密码的麻烦
SmartGit 貌似没有直接添加 私钥的地方,但是,在**代码库的时候,如果是 git 协议的,也就是需要使用公私钥的代码库地址,形如,git@git.oschina****:w***vow/test-jenkins.git,那么,SmartGit会提示在本机选择一个私钥文件。
SmartGit 使用到的 ssh 私钥 和 账号密码,可以在 Edit -> Preference -> Commands -> Authentication 中查看或移除,但是不能添加。
PS:我使用的是 Windows版本。
Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。
github的SSH配置如下:
一 、
设置Git的user name和email:
$ git config --global user.name "xuhaiyan"$ git config --global user.email "haiyan.xu****@gmail***m"
二、生成SSH密钥过程:
1.查看是否已经有了ssh密钥:cd ~/.ssh
如果没有密钥则不会有此文件夹,有则备份删除
2.生存密钥:
$ ssh-keygen -t rsa -C “haiyan.xu****@gmail***m”
按3个回车,密码为空。
Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa****.
The key fingerprint is:
………………
最后得到了两个文件:id_rsa和id_rsa****
3.添加密钥到ssh:ssh-add 文件名
需要之前输入密码。
4.在github上添加ssh密钥,这要添加的是“id_rsa****”里面的公钥。
打开https://github***m/ ,**xuhaiyan825,然后添加ssh。
5.测试:ssh git@github***m
The authenticity of host ‘github***m (207.97.227.239)’ can’t be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘github***m,207.97.227.239′ (RSA) to the list of known hosts.
ERROR: Hi tekkub! You’ve successfully authenticated, but GitHub does not provide shell access
Connection to github***m closed.
三、 开始使用github
1.获取源码:
$ git clone git@github***m:billyanyteen/github-services.git
2.这样你的机器上就有一个repo了。
3.git于svn所不同的是git是分布式的,没有服务器概念。所有的人的机器上都有一个repo,每次提交都是给自己机器的repo
仓库初始化:
git init
生成快照并存入项目索引:
git add
文件,还有git rm,git mv等等…
项目索引提交:
git commit
4.协作编程:
将本地repo于远程的origin的repo合并,
推送本地更新到远程:
git push origin master
更新远程更新到本地:
git pull origin master
补充:
添加远端repo:
$ git remote add upstream git://github***m/pjhyett/github-services.git
重命名远端repo:
$ git://github***m/pjhyett/github-services.git为“upstream”
可以写这样一个脚本,~/ssh-git.sh
#!/bin/bash
if [ -z "$PKEY" ]; then
# if PKEY is not specified, run ssh using default keyfile
ssh "$@"
else
ssh -i "$PKEY" "$@"
fi
注意用chmod +x ssh-git.sh命令设置可执行权限
然后设置GIT_SSH
export GIT_SSH=~/ssh-git.sh
最后
PKEY=~/.ssh/test.pem git clone user@server***m:/git/repo.git
上面的方法略显繁复,我们的目标是像ssh命令一样可以用-i参数来灵活的指定identity_file
再创建一个脚本,~/git.sh
#!/bin/bash
# The MIT License (MIT)
# Copyright (c) 2013 Alvin Abad
if [ $# -eq 0 ]; then
echo "Git wrapper script that can specify an ssh-key file
Usage:
git.sh -i ssh-key-file git-command
"
exit 1
fi
# remove temporary file on exit
trap 'rm -f /tmp/.git_ssh.$$' 0
if [ "$1" = "-i" ]; then
SSH_KEY=$2; shift; shift
echo "ssh -i $SSH_KEY \$@" > /tmp/.git_ssh.$$
chmod +x /tmp/.git_ssh.$$
export GIT_SSH=/tmp/.git_ssh.$$
fi
# in case the git command is repeated
[ "$1" = "git" ] && shift
# Run the git command
git "$@"
设置执行权限之后,即可像ssh一样自由的指定identity_file
~/git.sh -i ~/.ssh/test.pem clone user@server***m:/git/repo.git
文/四明羽客(简书作者)
原文链接:http://****jianshu***m/p/477de2f00830
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
检查SSH是否失效
在git命令行中进行git操作的时候,发现原来设置过的SSH key已经失效;**到github网站上查看,图标呈现灰色;好了,发现问题所在;
设置用户名和邮箱
在git命令行中对git进行全局设置, git config --global user.name "用户名", git config --global user.email "邮箱地址";
生成SSH key
在git命令行中,输入命令: cd ~/.ssh,来检测是否生成过key,没有生成过key,会有相关信息提示;然后输入命令: ssh-keygen -t rsa -C “邮箱地址”,按下回车键;然后根据返回的信息,找到.ssh目录下的两个文件;
sourcetree是一个git的gui客户端,github是一个代码托管平台,使用git提供版本控**务。sourcetree就是用来管理代码的本地客户端,比如你可以用sourcetree提交代码到github,clone github上的开源项目。至于怎么生成key,看下面的步骤:windows下如何github ssh 公钥
注册GitHub后你就会有0.3G的免费空间,不过只能创建公开项目,这也满足代码分享的目的,我最喜欢的倒是它的代码展示方式,可以直接浏览你的代码,代码是经过高亮、添加行号处理过的,十分漂亮,体验一流,比如这个Webpy托管的地方。而作为想要了解你代码的人,可以选择直接在线浏览自己感兴趣的,也可以直接下载压缩包,或者直接使用Git clone到本地。
因为GitHub是基于Git版本控制系统,所以你上传修改代码什么的,都需要使用Git工具。我这里主要是用来分享和展示代码,所以不想在版本控制方面做过多的阐述,下面就简单讲解一下怎么在GitHub上新建一个项目,还有把自己的代码传上去。下面的前提是你已经注册了GitHub和下载安装了Git——Git下载、Windows版本下载。
上传分享代码
1.在GitHub上建立项目
登录GitHub后,你可以在右边靠中那里找到一个按钮“New Repository”,点击过后,填入项目名称、说明和网址过后就可以创建了,然后会出现一个提示页面,记下类似git@github***m:XXX/XXX.git的地址,这个就是你这个项目的地址了。
2.配置Git以及上传代码
安装Git成功后,如果是Windows下,选择Git Bash,在命令行中完成一切,可能开始有点麻烦,不过就那几条命令行,用几次就记住啦。首先初始设置Git:
1 git config --global user.name "Your Real Name" 2 git config --global user.email you@email.address
然后开始进行最麻烦的一步了,你需要上传文件到GitHub的Git系统上,得需要一个SSH密匙来认证,下面就开始生成密钥和提交密钥。打开Git Bash,创建SSH key:
1 ssh-keygen -C 'your@email.address' -t rsa
然后要你输入SSH密匙的存放位置,可以不管,直接回车使用默认路径。再输入你想要的密码,SSH key就生成了。现在你需要将这个Key提交到GitHub,首先打开Key保存的位置,里面会有三个文件,找到id_rsa****,用文本编辑器打开,复制里面的全部字符。到GitHub,在右上方工具栏里找到Account Settings。在这个页面上有一个SSH Public Keys标签,选择Add another public key。Title可以随便填一个,Key就粘贴刚才的字符,提交。
完成这些工作后,就可以上传自己的代码了。找到自己要分享上传的代码文件夹,右击选择Git Bash,或者在Git Bash中进入这个文件夹。建立一个仓库:
1 git init
选择要添加进仓库的文件:
1 git add .
一般如果你想分享这个文件夹里的所有代码,就在 add后面加“.”,上面的例子就是这样,如果传指定的,只需要把“.”改为文件名即可,现在只是选择了要加入仓库的文件,下面才是添加进入仓库:
1 git commit -m 'Test'
-m后面跟一个参数,表示说明,将代码提交到GitHub后,将会在代码文件信息上显示这个说明,如下图标记的地方。
搞了这么久,现在才开始把本地仓库上传到GitHub了,下面两行命令搞定问题:
1 2 git remote add origin git@github***m:XXX/XXX.git 3 git push -u origin master
这个git@github***m:XXX/XXX.git就是上面创建项目是生成的地址。现在打开你的项目网址,你就可以发现你的代码已经展示出来了。如果你要更新代码的话,就重复上面的吧。
如果提交了敏感信息,比如代码中设置的自己的密码什么的忘删除就上传上去了怎么办?重新修改过后上传依然有历史记录,而使用Git删除历史记录貌似很麻烦,于是就采用删除项目吧,删除了再重新上传。删除项目需要在GitHub网站上右上方找到admin按钮,进去后右边最下面有个删除的按钮,这样就可以删除了。
一些可能遇到的问题解决:
如果输入$ git remote add origin git@github***m:djqiang(github帐号名)/gitdemo(项目名).git
提示出错信息:fatal: remote origin already exists.
解决办法如下:
1、先输入$ git remote rm origin
2、再输入$ git remote add origin git@github***m:djqiang/gitdemo.git 就不会报错了!
3、如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section ‘remote.origin’. 我们需要修改gitconfig文件的内容
4、找到你的github的安装路径,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc
5、找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!
如果输入$ ssh -T git@github***m
出现错误提示:Permission denied (publickey).因为新生成的key不能加入ssh就会导致连接不上github。
解决办法如下:
1、先输入$ ssh-agent,再输入$ ssh-add ~/.ssh/id_key,这样就可以了。
2、如果还是不行的话,输入ssh-add ~/.ssh/id_key 命令后出现报错Could not open a connection to your authentication agent.解决方法是key用Git Gui的ssh工具生成,这样生成的时候key就直接保存在ssh中了,不需要再ssh-add命令加入了,其它的user,token等配置都用命令行来做。
3、最好检查一下在你复制id_rsa****文件的内容时有没有产生多余的空格或空行,有些编辑器会帮你添加这些的。
如果输入$ git push origin master
提示出错信息:error:failed to push som refs to …….
解决办法如下:
1、先输入$ git pull origin master //先把远程服务器github上面的文件拉下来
2、再输入$ git push origin master
3、如果出现报错 fatal: Couldn’t find remote ref master或者fatal: ‘origin’ does not appear to be a git repository以及fatal: Could not read from remote repository.
4、则需要重新输入$ git remote add origingit@github***m:djqiang/gitdemo.git
使用git在本地创建一个项目的过程
$ makdir ~/hello-world //创建一个项目hello-world
$ cd ~/hello-world //打开这个项目
$ git init //初始化
$ touch README
$ git add README //更新README文件
$ git commit -m ‘first commit’ //提交更新,并注释信息“first commit”
$ git remote add origin git@github***m:defnngj/hello-world.git //连接远程github项目
$ git push -u origin master //将本地项目更新到github项目上去
Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。
github的SSH配置如下:
一 、
设置Git的user name和email:
$ git config --global user.name "xuhaiyan"$ git config --global user.email "haiyan.xu****@gmail***m"
二、生成SSH密钥过程:
1.查看是否已经有了ssh密钥:cd ~/.ssh
如果没有密钥则不会有此文件夹,有则备份删除
2.生存密钥:
$ ssh-keygen -t rsa -C “haiyan.xu****@gmail***m”
按3个回车,密码为空。
Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa****.
The key fingerprint is:
………………
最后得到了两个文件:id_rsa和id_rsa****
3.添加密钥到ssh:ssh-add 文件名
需要之前输入密码。
4.在github上添加ssh密钥,这要添加的是“id_rsa****”里面的公钥。
打开https://github***m/ ,**xuhaiyan825,然后添加ssh。
5.测试:ssh git@github***m
The authenticity of host ‘github***m (207.97.227.239)’ can’t be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘github***m,207.97.227.239′ (RSA) to the list of known hosts.
ERROR: Hi tekkub! You’ve successfully authenticated, but GitHub does not provide shell access
Connection to github***m closed.
三、 开始使用github
1.获取源码:
$ git clone git@github***m:billyanyteen/github-services.git
2.这样你的机器上就有一个repo了。
3.git于svn所不同的是git是分布式的,没有服务器概念。所有的人的机器上都有一个repo,每次提交都是给自己机器的repo
仓库初始化:
git init
生成快照并存入项目索引:
git add
文件,还有git rm,git mv等等…
项目索引提交:
git commit
4.协作编程:
将本地repo于远程的origin的repo合并,
推送本地更新到远程:
git push origin master
更新远程更新到本地:
git pull origin master
补充:
添加远端repo:
$ git remote add upstream git://github***m/pjhyett/github-services.git
重命名远端repo:
$ git://github***m/pjhyett/github-services.git为“upstream”
检查SSH是否失效
在git命令行中进行git操作的时候,发现原来设置过的SSH key已经失效;**到github网站上查看,图标呈现灰色;好了,发现问题所在;
设置用户名和邮箱
在git命令行中对git进行全局设置, git config --global user.name "用户名", git config --global user.email "邮箱地址";
生成SSH key
在git命令行中,输入命令: cd ~/.ssh,来检测是否生成过key,没有生成过key,会有相关信息提示;然后输入命令: ssh-keygen -t rsa -C “邮箱地址”,按下回车键;然后根据返回的信息,找到.ssh目录下的两个文件;
在github上添加SSH key
在github上点击“setting”,找到添加SSH key的菜单,然后新增SSH key;把文件id_rsa**** 里面的内容全部复制到 key编辑框中,保存完毕;
检查SSH key是否有效
在git命令行输入:ssh -T git@github***m;这里会要求你输入SSH key密码,如果刚才生成SSH key时未输入密码,密码就为空;然后看到信息:
ERROR: Hi 用户名! You’ve successfully authenticated;说明配置成功;
再次查看github密钥
**到github上查看刚刚输入的SSH key,现在图标的颜色变为绿色,说明密钥配置有效;现在可以在git命令行上进行git操作了;
详解ssh/https远程连接Git服务器
https 转成 ssh 访问的方法:
1、Git remote remove origin
2、git remote add origin git@github***m:用户名/你项目仓库.git (在你的github上复制地址就可以)
3、设置pull的远程分支:git branch --set-upstream-to=origin/master master
Git使用手册:HTTPS和SSH方式的区别和使用
这两种方式的主要区别在于:
使用https url**对初学者来说会比较方便,复制https url然后到git Bash里面直接用clone命令**到本地就好了,但是每次fetch和push代码都需要输入账号和密码,这也是https方式的麻烦之处。
使用SSH url**却需要在**之前先配置和添加好SSH key,因此,如果你想要使用SSH url**的话,你必须是这个项目的拥有者。
否则你是无法添加SSH key的,另外ssh默认是每次fetch和push代码都不需要输入账号和密码,
如果你想要每次都输入账号密码才能进行fetch和push也可以另外进行设置。
本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“以及git如何使用ssh密钥(将ssh密钥添加到g”
上一篇
长篇修仙小说十大巅峰完本?
下一篇
苏格兰猎鹿犬看家能力 看家能力强