ssh key与git/github生成密钥

2022-11-22 15:22:02 浏览数 (1)

目录

1. 什么是ssh key ?

2. git/github生成密钥并通过   操作分为本地电脑配置和github网站配置

   第一步:本地电脑配置   右键空白处,选择Git Bash Here打开相关命令窗口    

   第二步:远程github仓库配置 

 第三步为可省略步骤,如果你在取得Git仓库时就使用的是ssh协议,就无需修改

 第四步:测试SSH连接

3. idea中配置Git(两种方式)

4. idea中配置Git 

5. Git文件的四种状态(复习)

6. idea中使用Git

6.1.创建本地仓库

  7. 提交修改文件到GitHub

  8. Clone 克隆 GitHub 上的代码到本地

9. 利用GitHub进行团队开发   注1:详情见“资料/02 利用GitHub进行团队开发.mth”

附录一:window命令窗口常用命令

1. 什么是ssh key?

ssh key是远程ssh连接中的一种基于密匙方式安全连接的密匙文件。 ssh key是ssh中基于密匙的安全验证,你可以通过创建私人密匙和公用密匙的方式来完成ssh key方式的ssh登陆验证,首先你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用 密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。基于ssh key的登陆验证方式可以避免假冒服务器的问题,因为假冒服务器获取不到你的密匙,它比基于用户名密码的口令方式更安全,但是需要的登陆时间也会更长。

我理解的就是每台电脑上会产生出一个ssh key,然后自己有一个远程账户,但是自己有可能有很多台电脑,    包括家里的电脑还有公司的电脑,我们可以在任意一台电脑上工作,但是如果想要每台电脑都和远程版本库时刻保持着通讯,    就需要将每台电脑的ssh key添加到远程账户,添加到远程版本库之后,远程版本库就会和已经添加的电脑进行通讯而不会和其他电脑进行通讯     建议:所有的Git操作都通过ssh key进行,因为简单

2. git/github生成密钥并通过    操作分为本地电脑配置和github网站配置

 第一步:本地电脑配置    右键空白处,选择Git Bash Here打开相关命令窗口       2.1.配置用户名和邮箱(如果已经配置,就跳过)

代码语言:javascript复制
  git config --global user.name "username"
     git config --global user.email "email"

   之后就会在C:UsersAdministrator下创建一个.gitconfig文件,内容为

     [user]      name = xxx      email = xxx@xxx.com  注1:username和email即github的登陆帐号和注册邮箱      注2:git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置

   2.2.检查下自己之前有没有已经生成ssh      cd ~/.ssh      ls

   注1:当cd ~/.ssh命令执行后窗口返回“no such file or directory”的时候,表示我们的电脑并没有ssh key,所以需要我们创建ssh key      注2:~表示当前用户的目录,比如我的是:C:UsersAdministrator      注3:ls命令执行后,如果本地有ssh秘钥的话会有id_rsa.pub,config,known_hosts等文件

   2.3.生成(或删除)秘钥 ssh-keygen -t rsa -C "xxx@xx.com"//这里的邮箱要换成自己注册时的邮箱      接着按3个回车即可。  注1:如果本地有ssh,执行以上命令会出现正面的提示,这里选择y,表示覆盖本地的ssh key,其实也就是ssh秘钥删除的意思      注2:为什么要删除秘钥,创建SSH的时候设置过密码,那就很有可能git操作时出现忘记密码的尴尬情况,           不要想着怎么重新修改密码了,选择重新创建一个ssh秘钥        注3:创建ssh key不要输入密码了,不然操作起来太累~~~~~~~    2. 4.执行命令完成后,默认会在window的

C:UsersAdministrator.ssh下面生成如下两个名称的文件:       C:UsersAdministrator.ssh        id_rsa(私钥,不能泄露出去)        id_rsa.pub(公钥)        known_hosts(不用管) 

 第二步:远程github仓库配置

 1.登陆到自己的gitbub,点击右上角的倒立小三角形。选择 settings    2.选择SSH and GPG keys    3.点击右边的New SSH key    4.随意填入一个title,然后 key 中粘贴刚才复制的id_rsa.pub文本,点击 Add key 这样就大功告成    5.github官网有时候会要你输入登陆密码才能添加ssh key。输入密码即可

 ## 第三步为可省略步骤,如果你在取得Git仓库时就使用的是ssh协议,就无需修改    第三步:修改你本地的ssh remote url. 不用https协议,改用git 协议

代码语言:javascript复制
 1.git remote -v 查看你当前的remote url
     git remote -v
     
     ## 如何显示如下内容,则表示Git仓库是使用https协议进行访问的。
     origin https://github.com/someaccount/someproject.git (fetch)
     origin https://github.com/someaccount/someproject.git (push)

 2.使用浏览器登陆github,找到仓库ssh协议相应的url。类似如下: git@github.com:someaccount/someproject.git

 3.使用 git remote set-url 来调整你的url。  git remote set-url origin git@github.com:someaccount/someproject.git

   4.最后再用 git remote -v 查看一下。协议已改变  第四步:测试SSH连接    .输入测试命令 ssh -T git@gitee.com      如果显示如下内容,表示ssh key添加成功:      Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.

   小结:https 和 SSH 的区别:

         1.前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,            且需要先添加 SSH key ,否则无法克隆。          2.https url 在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,            如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。

3. idea中配置Git(两种方式)

   3.1.设置git.exe的安装路径      点击菜单“File->Settings->Version Control->Git”,设置Path to Git executable的值为:D:toolsGitbingit.exe,

 注1:请将上述路径“D:toolsGitbingit.exe”改为自己git的安装目录      注2:点击右边的“test”按钮,应该显示成功消息及git的版本信息

  3. 2.再将本窗口的SSH executable设置为Native,如果选择Built-in,则需要输入密码

   3.3.选择 VCS -> Checkout from Version Control -> Git,将gitlab上面项目的ssh路径复制,点击Test,提示Connection successful,后面一路点击next即可

注1:很郁闷,在idea未找到如何使用ssh key来push项目,只能通过帐号密码进行push   

   方式二:在idea中配置帐号密码登陆    1.同方式一的步骤1    2.设置Github帐号      点击菜单“Settings->Version Control->Github” 

 注1:认证方式选择密码,即Auth Type:“Password”,然后输入帐号/密码,再测试是否连接成功      注2:认证方式选择令牌,即“Token”,再点击“Create API Token”,再输入帐号和密码,通过后会生成一个令牌

4. idea中配置Git    4.1.设置git.exe的安装路径      点击菜单“File->Settings->Version Control->Git”,设置Path to Git executable的值为:D:toolsGitbingit.exe,

 注1:请将上述路径“D:toolsGitbingit.exe”改为自己git的安装目录      注2:点击右边的“test”按钮,应该显示成功消息及git的版本信息

   4.2.设置Github帐号      点击菜单“Settings->Version Control->Github” 

   注1:认证方式选择密码,即Auth Type:“Password”,然后输入帐号/密码,再测试是否连接成功      注2:认证方式选择令牌,即“Token”,再点击“Create API Token”,再输入帐号和密码,通过后会生成一个令牌

  4. 3.有意思的两个地方:

     1.idea创建项目后,第一次push项目到github只能通过设置帐号/密码的方式,再次从github远程仓库clone下来就可以使用ssh key了      2.如果IDEA上的git功能出现了可以commit但无法push和pull的问题,测试发现原因是Could not read from remote repository,        解决方法:在Settings->Version Control->Git中,将SSH executable设置为Native即可

5. Git文件的四种状态(复习)  未跟踪(untrack):红色    已修改(modified):蓝色    已暂存(staged):绿色    已提交(committed):白色

## 场景:在idea中新建一个项目,并push到github,这种情况一般是项目初建,项目经理将项目搭建好,第一次提交到github 6. idea中使用Git   0.  VCS是什么       VCS(Check out from Version Control)从版本控制中检查项目

  6.1.创建本地仓库 VCS-->Import into Version Control-->Create Git Repository...     注1:一般会选择当前项目所在的目录    6. 2.上传项目到本地仓库,项目右键选择Git-->add,此时项目文件变成绿色,此时文件只是处于暂存区,并没有真正进入到版本库(本地)中   6.3.项目右键Git--> Commit Directory,在弹窗中输入Commit Message,点击commit,此时项目文件从暂存区真正进入版本库(本地)中,项目文件变成白色     注1:在弹窗中输入Commit Message,也可以点击commit and push,会同时提交到本地库和代码托管网站  6. 4.上传项目到GitHub中,VCS-->Import into Version Control-->Share Project on GitHub,在弹框中输入仓库名和描述,点击Share,即可是上传,    中间会弹窗输入GitHub的用户名和密码(已输入过用户名和密码并记住的不会再次弹框输入),上传成功后IDEA右下角会给出提示

  7. 提交修改文件到GitHub

新增文件(红色),右键-->Git-->add,将新增的文件加入本地仓库,此时文件变绿色

    修改文件(蓝色)

    在项目右键-->Git-->Commit Directory,查看有变动的文件并输入Commit Message,点击Commit and Push...

    提交后会进行语法检查,若存在错误或警告会给出确认提示,点击Commit,弹出Push框,点击Push,上传GitHub成功

  8. Clone 克隆 GitHub 上的代码到本地       在 GitHub 上创建仓库后,复制仓库地址,比如 https://github.com/FatliTalk/test ,       在 IntelliJ IDEA 中 VCS—>Checkout from Version Control—>Git(或GitHub)中,粘贴仓库url地址(选择仓库),       从 GitHub 仓库中 Clone 克隆一份项目,然后就可以在本地进行修改,然后再 Push 到 GitHub

9. 利用GitHub进行团队开发   可参考:利用GitHub进行团队开发_jam_fanatic的博客-CSDN博客_github团队开发

附录一:window命令窗口常用命令

1.打开命令窗口   cmd 2.进入某个文件夹    cd xxx 3.清屏   clear 4.显示文件及文件夹    dir 5.创建文件夹   mkdir 6.创建文件   type nul>文件名.后缀名来创建    type null>c.txt 7.删除文件夹   rd d:wo    当然这种删除方法必须要该文件夹是空文件夹,不然删除不了 8.删除文件   del 盘符名:文件名   del f:123.txt

0 人点赞