8455澳门新_8455新葡萄娱乐【官网】

8455澳门新查看生成好的公钥,我们采用ssh

首先 先在自己的当前主机打开git bash

本文记录生成同域的多个 git账号的 ssh key 和不同域的多个 ssh key。

云服务器为:腾讯云
客户端:win10操作系统

git是一个分布式的版本控制系统。这也就意味着主机克隆原始仓库之后,每一个主机上的仓库都是相同并且完整的,没有主次之分。这样极大的保证了数据的安全性。

问题

在使用Git与tortoisegit的时候,指定远程版本库的地址有2种方式:

  1. 使用https方式的git地址非常直接( bash还是tortoisegit都能完美使用,但是每次需要连接远程服务器时,都要提示我输入用户名与密码,非常不爽;
  2. 使用ssh方式的git地址非常爽快(git@git.oschina.net:xxxx/xxx.git),不需要输入密码,但是需要配置。

第一种方式没啥说的,第二种方式的应用,我配置的时候出现了一个问题:

配置了tortoisegit的putty后,直接用tortoisegit可以不输入密码直接完成操作;但是当我使用git bash的时候,使用git pull之类的命令还需要我输入密码...

P.S. 别说我闲的,有tortoisegit为啥还用git bash。实际上,使用git bash在有的操作上还是挺方便的(比如删除分支 git push origin :branchx)。

 

那怎么弄才能让这2个小家伙都不输入密码呢?

这里又有两种办法...

  1. 调整tortoisegit的settings中的network选项,将tortoisegitplink.exe改成git安装目录的下binssh.exe。如果先前用ssh-keygen.exe配置好了git下的ssh话,改完就能直接用,没配置好的话...等下说。
  2. 默认安装tortoisegit,会使用PuTTY(plink)作为默认的ssh方式,声称对windows集成更好,如果不想改这种方式的话,就只能让git的ssh.exe使用PuTTY的密钥了,tortoisegit继续使用PuTTY。

注意:tortoisegit可以自动载入putty key,使用puttygen程序可以生成对应的公钥与私钥。

 

ssh-keygen 生成密钥对 (默认就好,我自己是一直摁着回车的)

1. 生成并部署 SSH Key

部署开始

解决方法

我先前已经配置好了PuTTY,只是bash中的openssh不能用,于是我采用第二种方式。公钥是相同的,需要转换一下私钥。

定位putty的ppk文件,用puttygen(在tortoisegit目录里面)打开(conversions>import key)

8455澳门新 1

然后点击conversions>export openSSH key,保存文件为id_rsa文件,不要拓展名。

8455澳门新 2

然后再点击下面的save public key按钮,保存为id_rsa.pub文件,效果如下:

8455澳门新 3

找到自己%home%下(~)的.ssh文件夹,一般windows 7以后的在c:用户“自己的用户名”下面。没有的话,可以新建。

把刚才的两个文件扔进去。打开git bash,执行命令,如下图。

8455澳门新 4

跳转到自己的版本路径,执行git pull,命令行再也不提示密码了...再试试tortoisegit,依然也不提示要密码。

这样实际相当于配置了一回git的ssh,让openSSH与putty使用相同的密钥,git bash使用openssh连接,而tortoisegit使用PuTTY连接,谁也不碍着谁。

 

 

1.1 第一个 SSH Key 的生成

打开 git bash,输入以下命令生成 github-user1 的 SSH Key:

ssh-keygen -t rsa -C "github-user1@email.com"

第一个 ssh key 使用默认名字,三下回车,完成第一个默认的 ssh key。

在当前用户目录的 .ssh 目录下会生成 id_rsa 私钥文件和 id_rsa.pub 公钥文件,将 id_rsa.pub 公钥中的内容添加至 github-user1 的 GitHub 云端中。

然后在 git bash 中输入以下命令测试该用户的 SSH 密钥是否有效:

ssh -T git@github.com

若连接成功则提示

Hi github-user1! You've successfully authenticated, but GitHub does not provide shell access.

ssh -T git@github.com
注明:该命令仅限于文件名为默认 id_rsa 的密钥

1.服务端部署

  • 在云服务器上安装git服务程序
    yum install git
  • 添加一个用户git,只能用来上传文本文件,而不能ssh登录
    adduser git
    chsh -s $(command -v git-shell) git//使用git-shell替换bash,这样git用户就不能通过ssh登录
  • 创建git版本仓库,一般规范的方式要以.git为后缀:
    mkdir kingwen.git
  • 修改git版本仓库的所有者与所有组:
    chown -Rf git:git kingwen.git/ //这一步是让目录可以被git用户修改,否则会出现“ permission denied”错误
  • 初始化git版本仓库:
    cd kingwen.git/
    git --bare init

至此Git服务器部署好了,但是还不能够上传文档文件,也不能克隆你的仓库。需要在服务器上开放至少一种支持Git的协议(http/https/ssh),我们采用ssh

  • 添加ssh公钥,在/home/git/.ssh/authorized_keys里添加客户端的公钥,一行一个。如果没有文件,可以新建
    mkdir /home/git/.ssh
    touch /home/git/.ssh/authorized_keys

    在这一步放入公钥指的是客户端的公钥,所以涉及到客户端生成公钥:
    客户端如何生成公钥呢?首先我们明确客户端是也需要git服务程序的,我们用git服务程序来生成公钥就可以啦。

    需在客户端操作
    • 安装git (windows上都是点击下一步安装的) git官网
    • 打开git-bash,执行
    $ cd ~  #保证当前路径在”~”下
    $ ssh-keygen -t rsa -C "xxxxxx@yy.com"  #建议填写自己真实有效的邮箱地址
    

    *本机已完成ssh key设置,公钥存放路径为:c:/Users/{用户名}/.ssh/id_rsa.pub

实践指南

依据自己的喜好,为了不重复输入用户名与密码,可以选择兼用PuTTY与OpenSSH或者只用openSSH

cat ~/.ssh/id_rsa.pub

1.2 第二个 SSH Key 的生成

git bash 中输入以下命令,生成 gitee-user1 的密钥,注意第二个 SSH Key 不能再使用默认的文件名 id_rsa,否则会覆盖之前的密钥文件:

ssh-keygen -t rsa -f ~/.ssh/id_rsa_gitee_one -C "gitee-user1@email.com"

在当前用户目录的 .ssh 目录下会生成 id_rsa_gitee_one 私钥文件和 id_rsa_gitee_one.pub 公钥文件,将 id_8455澳门新,rsa_gitee_one.pub 公钥中的内容添加至 gitee-user1 的 Gitee 云端中。

2.客户端部署

  • 配置账户
    $ git config --global user.name “your_username” #设置用户名
    $ git config --global user.email “your_registered_Email” #设置邮箱地址
  • 切换到某个目录来克隆仓库:eg:桌面
    cd ~/Desktop/
    git clone ssh://git@{服务器对外ip}:22/git/kingwen.git
  • 向Git版本仓库中提交一个新文件并提交到本地git仓库:
    echo "I successfully cloned the Git repository" > readme.txt
    git add readme.txt //添加进暂存区
    git status //查看状态
  • 推送到远程Git服务器,首先定义远程的Git服务器:
    git remote add server git@{服务器对外ip}:/root/kingwen.git
  • 将文件提交到远程Git服务器
    git push -u server master

*兼用openSSH与PuTTY*

1.配置tortoisegit的PuTTY:

2.确认tortoisegit可以正常使用PuTTY,可以按照上面解决方法的步骤配置openSSH以供git bash使用。

 

本文由8455澳门新发布于关于我们,转载请注明出处:8455澳门新查看生成好的公钥,我们采用ssh

相关阅读