SSH设置与MERCURIAL(版本控制工具)

此文以bitbucket使用为例(文章地址http://www.cnblogs.com/7explore-share/p/4394264.html)

Index

1. Bitbucket介绍

2. 环境及下载资源

3. 配置和使用

1. Bitbucket介绍

  BitBucket 是一家源代码托管网站,采用Mercurial(中文名是水银,化学上称为汞hg)和Git作为分布式版本控制系统,同时提供商业计划和免费账户。

主要特点:无限制的私有仓库个数;无限制的磁盘空间;同时支持https/ssh;Bug 跟踪;项目Wiki;API 支持;灵活的权限控制;可自定义域名;RSS 修改记录输出;自定义下载

  其实使用它的个人想法是进行团队的分布式开发,与Github的使用类似。但是github不免费提供私有仓库,而Bitbucket不仅免费提供私有仓库,网络访问速度也比较快,是小项目开发的较好选择。
 

ssh(安全外壳协议)

  SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UXLinuxAIXSolarisDigital UNIXIrix,以及其他平台,都可运行SSH。
  传统的网络服务程序,如:ftppoptelnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTPPoP、甚至为PPP提供一个安全的"通道"。

 

2. 环境及下载资源

  环境:操作系统Windows8 64bit

  下载资源:

   sourceTree(Git或Mercurial客户端)                            #UI

   mercurial(轻量级分布式版本控制系统)                         #shell

   TortoiseHG(windows下的shell扩展和mercurial的支持)  #hg

   PuTTYgen( putty工具及密钥生成)                             #ssh

        Pageant (ssh key加载工具,加载到内存, READ MORE

       可选:git for windows

      PuTTY 

            

3. 配置和使用

STEP1. 安装和注册

  下载并安装好上述文件,然后按以下步骤进行配置。

  注册bitbucket账户(参考教程http://www.open-open.com/lib/view/open1420034265890.html)

STEP2. 环境配置

测试环境安装后的环境:

       按下win+r,输入cmd,打开cmd窗口,输入以下命令:

               hg

               git

               TortoisePlink

如果没有出现无法找到该命令之类的错误提示信息,则安装正常,否则需手动将路径添加到path.

  测试项目文件同步

        登入到自己的bitbucket用户网址,create一个repo,创建完后,网页自动跳转到该repo的Overview。单击Command line下的 I’m starting from scratch,展开提示信息。

image

        会看到clone命令:

hg clone ssh://hg@bitbucket.org/your_name/test

        和push命令:

echo "This is a test txt file." >> contributors.txt  
hg add contributors.txt
hg commit -m "Initial commit with contributors"    # commit
hg push ssh://hg@bitbucket.org/your_name/test      # push

        以上创建了一个新文件contributors.txt,包含内容”This is a test txt file.”。当然现在尝试这些可能会失败,还需要完成以下工作才行。

         打开PuttyGen程序,生成private.ppk(密码保护)和public.ppk.保存在C:Usersusername.ssh目录下,并复制public_key添加key到你的账户https://bitbucket.org/account/user/your_name/ssh-keys/

编辑C:Usersusernamemercurial.ini文件,添加以下内容

# Generated by TortoiseHg setting dialog
[ui]
username = yourusername <youremail@yourdomain.ext>
ssh = "your-path-toTortoisePlink.exe" -ssh -2 -i C:Usersyourusername.sshprivate.ppk

然后可以尝试以上命令了,如果没有什么错误就会显示一下界面:

image

image

当然,用已安装好的带有图形界面的工具可能更加方便,这就看个人喜好了。

在此贴出后续用于版本同步的batch简单文本(修改对应名称后,另存为push.bat放在项目文件夹根目录下):

hg pull ../project-name
hg merge
hg commit
hg push --new-branch default
pause

参考资源:

原官方网址:https://confluence.atlassian.com/display/BITBUCKET/Bitbucket+101

    https://confluence.atlassian.com/display/BITBUCKET/Use+the+SSH+protocol+with+Bitbucket 

https://confluence.atlassian.com/display/BITBUCKET/Set+up+Git+and+Mercurial

http://superuser.com/questions/189355/is-it-ok-to-share-private-key-file-between-multiple-computers-services

https://mercurial.selenic.com/wiki/AccessingSshRepositoriesFromWindows

https://mercurial.selenic.com/wiki/QuickStart

https://confluence.atlassian.com/display/BITBUCKET/Configure+multiple+SSH+identities+for+TortoiseHg

https://confluence.atlassian.com/display/BITBUCKET/Add+an+SSH+key+to+an+account

视频教程:在youtube

分享请注明来源:http://www.cnblogs.com/7explore-share 请尊重别人的创作,谢谢!
原文地址:https://www.cnblogs.com/7explore-share/p/4394264.html