在windows下进行项目开发,使用git,通过ssh方式与git库连接,而ssh方式用public key实现连接。

首先需要下载mygit,安装后使用git bash。git bash(有GUI界面,如安装TortoiseGit后就可以使用)。我主要使用命令行,其命令行系统类似linux环境的基本操作命令,可以直接看到c:,如cd /d/mygitwork,进入我的D盘下的工程目录,放置开发的工程。

我的操作:在windows的git bash中用ssh -keygen ssh -keygen -t rsa生成了密钥对,cp .ssh/id_rsa.pub authorized_keys 改名。 将这个key交给同事,他作为github上的库创建者,添加到工程git库中,我clone该git库后,就可以使提交代码了,具体步骤:

如果已经用自己邮箱生成过ssh key,可以省去步骤1和2

1、生成ssh-key

ssh-keygen -t rsa -C "XXX@company.com"

2、重命名ssh-key

cp ~/.ssh/id_rsa.pub ~/.ssh/XXX@company.com.pub

3、发送邮件给git库负责人,由其添加到git库中,获得使用权限,将~/.ssh/xxx@company.com.pub放入邮件附件

与git库连接:ssh方式要利用public key实现写功能。

(一般公司会搭建自己的git服务器,如果是自己,可以使用免费的git 服务器github。具体的使用,在后面介绍)

git库建好后,用git clone连接,但这样的库,只有读功能,没有写功能。如果想写,必须用ssh方式,连接后,提交自己的public key,由该库的管理员将该public key添加到git库,产生访问权限。

public key 的原理在这里有介绍http://hi.baidu.com/beijiqieys/item/4643900f6ae51223a0312dc8

具体的命令是用ssh -keygen -t rsa生成密钥对,在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)

然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥.在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了。

将公钥文件复制到远程服务器上:

$ scp ~/.ssh/id_dsa.pub user@remote.host:pubkey.txt

$ ssh user@remote.host

$ mkdir ~/.ssh

$ chmod 700 .ssh

$ cat pubkey.txt >> ~/.ssh/authorized_keys

$ rm ~/pubkey.txt

$ chmod 600 ~/.ssh/*

$ exit

//权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能。

cat .ssh/id_rsa.pub | ssh user_B@your_ip "cat - >> /root/.ssh/authorized_keys"

也可以用

ssh-keygen     #生成证书。

ssh-copy-id -i id-rsa.pub 用户@ip    #把证书传到远程的那个机器上 并 生成authorized_keys文件。

github上的库创建:

创建Github Repository,注册Github账户(https://github.com/),在GitHub,一个项目对应唯一的Git版本库,创建一个新的版本库就是创建一个新的项目。访问仪表板(Dashboard)页面,如下图所示,可以看到关注的版本库中已经有一个,但自己的版本库为零。在显示为零的版本库列表面板中有一个按钮“New
Repository”,点击该按钮开始创建新版本库。

我们为新建立的版本库命名为“kxt-example”,相应的项目名亦为“ kxt-example ”,创建完毕后访问项目页,提示版本库尚未初始化,并给出如何初始化版本库的帮助,如下图所示(由于我的kxt-example已经初始化过了,所以下面的图片是截另一个未初始化的项目)。务必要 set up git,这个官网已经讲的很清楚了,这里不再介绍。

注意任何GitHub用户均可使用该URL访问此公开版本库,但只有版本库建立者luffyke具有读写权限,其他人只有只读权限。在初始化版本库之前,最好先确认是否是用正确的公钥进行认证。

最新文章

  1. 转发!HTML 复选框 checkbox 的 JavaScript 的全选和全反选
  2. [ACM_几何] Fishnet
  3. Delphi调用REST
  4. phpcms 05
  5. 转:SQL的内连接与外连接
  6. [WinJS] Promise 用法
  7. windows2008无线网卡和.net3.5安装
  8. SNMP协议具体解释
  9. Centos7系统配置上的变化(一)
  10. 【转】android创建Popwindow弹出菜单的两种方式
  11. 加减号改变input[type=number]的数值,基于[zepto.js]
  12. validators配置要点及No result defined for action报错解决方案
  13. java 如何将 word,excel,ppt如何转pdf--jacob
  14. 多重影分身——C#中多线程的使用三(调用方法和传参)
  15. 百度在职 iOS 架构师的成长笔记,送给还在迷茫的你!
  16. OLED小记
  17. javascript高级程序设计第二章知识点提炼
  18. eclipse default handler IHandler interface “the chosen operation is not enabled”
  19. [Javascipt] Immediately-Invoker 2
  20. 偶数求1/2+1/4+...+1/n奇数1/1+1/3+...+1/n

热门文章

  1. 如何搭建ssh服务?
  2. E1
  3. Oracle12c中SQL性能优化(SQL TUNING)新特性之自动重优化(automatic reoptimization)
  4. 自定义支持多行显示的RadioGroup
  5. Dynamics CRM2016 关闭错误报告弹框提示
  6. ECharts, PHP, MySQL, Ajax, JQuery 实现前后端数据可视化
  7. ROS(indigo)ROSPlan框架
  8. Leetcode解题-链表(2.2.2)ReverseLinkedList
  9. hive日志位置(日志定位报错:Failed with exception Unable to move sourcehdfs://namenode/tmp/hive-pmp_bi/h)
  10. Android View框架总结(七)View事件分发机制