关闭

git的ssh配置和使用

标签: git
168人阅读 评论(0) 收藏 举报
分类:

一、秘钥生成

我是在Windows的gitbase里面操作的。
生成秘钥:
$ ssh-keygen -t rsa -f sample
t 为密码类型
f 为生成的秘钥文件名称
回车键后会让你输入密码,你可以不输,直接按回车到下一步。
ssh-keygen -t rsa -C “your_email@youremail.com”
有些为了方便识别,会以自己的邮箱做标记。
这个是命令输入去执行的结果:

$ ssh-keygen -t rsa -f sample
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in sample.
Your public key has been saved in sample.pub.
The key fingerprint is:
SHA256:d1TDf+SYS8BADB4MvGO3yXvdIy6IJsMgncOBSsO4BqE admin@DESKTOP
The key's randomart image is:
+---[RSA 2048]----+
|     ..oo+oo .o  |
|.     ..... o....|
|+o     ..   .. * |
|E+.   + .  .  + +|
|++.o . +So. .. ..|
|+.*     +. .  .  |
|.. +   . o . .   |
|    + o o o o o  |
|     +   . o.. . |
+----[SHA256]-----+

在电脑C:\Users\yourname.ssh会生成对应的私钥和公钥。外来的私钥也可以放这里。
如果你没加名称会生成默认名字:id_rsa和id_rsa.pub。id_rsa为私钥,id_rsa.pub为公钥。打开它,里面是一段字符。
在本例里会生成sample_rsa和sample.pub
$ cd ~/.ssh
进入文件夹可以查看

私钥保存在您的电脑上,公钥交添加到服务器上。
用户必须拥有与服务器公钥所配对的私钥,才能访问服务器上的代码库。
下面罗列的是ssh-keygen的各个参数的作用

usage: ssh-keygen [options]
Options:
  -A          Generate non-existent host keys for all key types.
  -a number   Number of KDF rounds for new key format or moduli primality tests.
  -B          Show bubblebabble digest of key file.
  -b bits     Number of bits in the key to create.
  -C comment  Provide new comment.
  -c          Change comment in private and public key files.
  -D pkcs11   Download public key from pkcs11 token.
  -e          Export OpenSSH to foreign format key file.
  -F hostname Find hostname in known hosts file.
  -f filename Filename of the key file.
  -G file     Generate candidates for DH-GEX moduli.
  -g          Use generic DNS resource record format.
  -H          Hash names in known_hosts file.
  -h          Generate host certificate instead of a user certificate.
  -I key_id   Key identifier to include in certificate.
  -i          Import foreign format to OpenSSH key file.
  -J number   Screen this number of moduli lines.
  -j number   Start screening moduli at specified line.
  -K checkpt  Write checkpoints to this file.
  -k          Generate a KRL file.
  -L          Print the contents of a certificate.
  -l          Show fingerprint of key file.
  -M memory   Amount of memory (MB) to use for generating DH-GEX moduli.
  -m key_fmt  Conversion format for -e/-i (PEM|PKCS8|RFC4716).
  -N phrase   Provide new passphrase.
  -n name,... User/host principal names to include in certificate
  -O option   Specify a certificate option.
  -o          Enforce new private key format.
  -P phrase   Provide old passphrase.
  -p          Change passphrase of private key file.
  -Q          Test whether key(s) are revoked in KRL.
  -q          Quiet.
  -R hostname Remove host from known_hosts file.
  -r hostname Print DNS resource record.
  -S start    Start point (hex) for generating DH-GEX moduli.
  -s ca_key   Certify keys with CA key.
  -T file     Screen candidates for DH-GEX moduli.
  -t type     Specify type of key to create.
  -u          Update KRL rather than creating a new one.
  -V from:to  Specify certificate validity interval.
  -v          Verbose.
  -W gen      Generator to use for generating DH-GEX moduli.
  -y          Read private key file and print public key.
  -Z cipher   Specify a cipher for new private key format.
  -z serial   Specify a serial number.

二、放秘钥到服务器上

1.GitHub服务器

路径:settings——SSH and GPS keys里面new一个ssh key
把对应的公钥(sample.pub)放上去(把文件里的字符复制进去)。
GitHub_ssh
这时,你已经可以用ssh获取别人的项目代码了
获取源码:
$ git clone git@github.com:username/gitproj.git

2.配置git服务器

其实就是放了一个远程仓在服务器上。
ubuntu上安装git

 sudo apt-get install git

centos上安装git

yum install -y git

创建用户git

adduser git

我这里用的是centos
进入git用户

su git

创建秘钥

 ssh-keygen -t rsa -f ~/.ssh/aliyun

私钥自行保存。

创建authorized_keys文件保存公钥

mkdir .ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
cat ~/.ssh/aliyun.pub >> ~/.ssh/authorized_keys 

出于安全考虑,创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

git:x:1000:1000::/home/git:/bin/bash

改为

git:x:1000:1000::/home/git:/usr/bin/git-shell

测试

 mkdir ~/gitrepo
 cd ~/gitrepo
 git init --bare sample.git
 ##把仓库所属用户改为git
 chown -R git:git sample.git

pc端上
配置pc端的私钥,放在~/.ssh文件夹下面,如有需要可以再配置一个config文件同样放在~/.ssh文件夹下面,config文件配置见下文。

客户端验证

  git clone git@aliyun-git:gitrepo/sample.git
  cd sample
  touch a.txt
  git add a.txt
  git commit -m "init commit" 
  git push origin master

这里aliyun-get是域名,更多详细请看下面的config配置。执行到这一步基本ok了。

3.多服务器ssh

如果有多台服务器上怎么分别对应不同秘钥呢?你需要配置一个config文件在~/.ssh里面
里面写有各个服务器的配置清单。
~/.ssh/config

Host github.com
  HostName        github.com
  User            git
  IdentityFile    ~/.ssh/id_rsa_github

host aliyun-git
  port 22
  compression yes
  hostname 192.168.1.120
  user git
  identityfile ~/.ssh/aliyun
0
0
查看评论

Git配置和使用(SSH配置)

第一步:生成SSH  Key Git是分布式的代码管理工具,远程的代码管理是基于SSH的,所以要使用远程的Git则需要SSH的配置。 github的SSH配置如下: 一 、 设置Git的user name和email: $ git config --globa...
  • q908555281
  • q908555281
  • 2015-09-23 10:53
  • 2978

Git使用SSH方式的配置

项目开发中经常会使用到git进行代码版本管理,本地和git服务器通信的方式有SSH和HTTPS两种,使用HTTPS的方式在每次fetch和push代码时都要求输入账号和密码,在clone的时候直接用clone命令即可;而使用SSH的方式需要在clone之前配置并添加好SSH key,配置好之后在每次...
  • jaye16
  • jaye16
  • 2016-09-02 16:15
  • 326

git配置用户名密码、生成ssh。添加到github

一 、 设置Git的user name和email: $ git config --global user.name "xxx"$ git config --global user.email "xxx@xxx.com" 二、生成SSH密钥过程: 1....
  • harrain
  • harrain
  • 2017-05-18 14:51
  • 3585

【git使用】设置ssh key后push还要输入用户名和密码

因为当前repository使用的是https而不是ssh,需要更新一下origin。git remote rm origin git remote add origin git@github.com:Username/Your_Repo_Name.git
  • mengmengz07
  • mengmengz07
  • 2017-04-17 21:24
  • 403

git 的使用-linux上的配置 -ssh

1. 创建github 账号: 网站: https://github.com/ 账号密码自己填。Ok。 2. 进入Ubuntu命令编辑器。 1)生成SSH keys [php] view p...
  • u010187139
  • u010187139
  • 2014-11-06 13:02
  • 921

wi7下面配置 git bash使用ssh公钥/私钥登陆centos

最近在研究ssh公钥/私钥登陆 ,
  • wql19881207
  • wql19881207
  • 2014-07-07 20:20
  • 19099

Git-SSH的配置使用【详细】

为了你的仓库访问安全,一般大家喜欢创建SSH Keys和部署Keys,来进行开发中的交互。 本文介绍了如何通过SSH访问远端仓库代码的配置过程。以阿里云Code为例。 首先,得先有工具吧~下载个GIT      官网下载地址如下:    ...
  • ty_hf
  • ty_hf
  • 2016-08-11 23:06
  • 4528

使用eclipse生成git的ssh

原文名称:Git分布式开发之生成ssh公钥 原文地址:http://blog.csdn.net/lastsweetop/article/details/8251784 推荐再看看:http://my.oschina.net/China2012/blog/174874 1.在Pref...
  • u012012240
  • u012012240
  • 2016-01-21 15:19
  • 4945

eclipse下使用git插件管理代码(基于ssh的公私钥模式)

本文是在安装了gitosis服务器的基础上讲述如何在eclipse4.4中使用git插件的。 1,新建一个demo的project,在这个工程里面新建一个类class1,在这个类里定义一个变量。
  • adnis
  • adnis
  • 2014-09-28 09:28
  • 2188

笔记:Git Bash ssh key配置及首次提交本地工程到github(Windows )

一、必要条件 Windows中已安装git; 已经注册了github账号。 二、ssh key生成及配置在本地生成ssh key并配置到github网站。具体过程参考链接https://help.github.com/articles/generating-an-ssh-key/。这里说明为什么要生...
  • tterminator
  • tterminator
  • 2016-04-07 19:22
  • 1369
    个人资料
    • 访问:40972次
    • 积分:724
    • 等级:
    • 排名:千里之外
    • 原创:31篇
    • 转载:1篇
    • 译文:0篇
    • 评论:6条
    文章分类
    最新评论