SSH密钥并非为了解决拉取git仓库代码时,需要频繁输入密码的问题。
SSH是一种比较安全的协议,可以用来免去远程登录Linux等服务器时需要输入密码的繁琐过程。
命令:

ssh user@server-ip~$ ssh root@www.baidu.com
The authenticity of host 'www.baidu.com (111.111.111.111)' can't be established.
ECDSA key fingerprint is SHA256:dQG6QRYvoWfgkMVcCv5S1jO6nkbv7bUPmS8i5BvhX3g.
Are you sure you want to continue connecting (yes/no)?
Host key verification failed.

Git仓库也仅仅使用了以上同一原理。

如何生成SSH公私玥

ssh-keygen -t rsa -C 'mail-address@qq.com' -f ~/.ssh/filename
~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/admin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/admin/.ssh/id_rsa.
Your public key has been saved in /Users/admin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:CGcr7t8PaaQKFLYA7nLjqnBy4P2XNQ/C55Uh7E/bVgY admin@192.168.1.1
The key's randomart image is:
+---[RSA 2048]----+
|.                |
|o                |
|..o . o .        |
|.o o + o o . E   |
|o.= . + S . o .  |
|o=.o . = B +   o |
|o.=.. . X B o o  |
|.= o.. = o + o   |
|+   ooo ... .    |
+----[SHA256]-----+

ssh-keygen参数

ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1][-N new_passphrase] [-C comment] [-f output_keyfile]ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]ssh-keygen -i [-m key_format] [-f input_keyfile]ssh-keygen -e [-m key_format] [-f input_keyfile]ssh-keygen -y [-f input_keyfile]ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]ssh-keygen -B [-f input_keyfile]ssh-keygen -D pkcs11ssh-keygen -F hostname [-f known_hosts_file] [-l]ssh-keygen -H [-f known_hosts_file]ssh-keygen -R hostname [-f known_hosts_file]ssh-keygen -r hostname [-f input_keyfile] [-g]ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]ssh-keygen -T output_file -f input_file [-v] [-a rounds] [-J num_lines][-j start_line] [-K checkpt] [-W generator]ssh-keygen -s ca_key -I certificate_identity [-h] [-n principals][-O option] [-V validity_interval] [-z serial_number] file ...ssh-keygen -L [-f input_keyfile]ssh-keygen -Assh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number]file ...ssh-keygen -Q -f krl_file file ...
-b bits指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)。-C comment提供一个新注释
-f filename指定密钥文件名。
-t type指定要创建的密钥类型。可以使用:"rsa1"(SSH-1) "rsa"(SSH-2) "dsa"(SSH-2)
-T output_file测试 Diffie-Hellman group exchange 候选素数(由 -G 选项生成)的安全性。

配置多个SSH-Key

Git配置多个SSH-Key
背景
当有多个git账号时,比如:a. 一个gitlab,用于公司内部的工作开发;
b. 一个gitee,用于自己的开发学习;解决方法
生成一个公司专用的SSH-Key
$ ssh-keygen -t rsa -C 'tec@aliyun.com' -f ~/.ssh/tec@qq.com
生成一个gitee用的SSH-Key
$ ssh-keygen -t rsa -C 'candy@qq.com' -f ~/.ssh/candy@qq.com
在 ~/.ssh 目录下新建一个config文件,添加如下内容(其中Host和HostName填写服务器的域名,IdentityFile指定私钥的路径)
# gitlab.aliyun.com
Host giteegitlab.aliyun.comHostName giteegitlab.aliyun.comIdentityFile ~/.ssh/tec@qq.com
# gitee
Host gitee.comHostName gitee.comIdentityFile ~/.ssh/candy@qq.com
4.用ssh命令分别测试$ ssh -T git@gitee.com
这里以gitee为例,成功的话会返回内容
~$ ssh -T git@gitee.com
Hi Tec! You've successfully authenticated, but GITEE.COM does not provide shell access.

~/.ssh/目录结构

     ~/.ssh/id_dsa该用户默认的 DSA 身份认证私钥(SSH-2)。此文件的权限应当至少限制为"600"。生成密钥的时候可以指定采用密语来加密该私钥(3DES)。ssh将在登录的时候读取这个文件。~/.ssh/id_dsa.pub该用户默认的 DSA 身份认证公钥(SSH-2)。此文件无需保密。此文件的内容应该添加到所有 DSA 目标主机的 ~/.ssh/authorized_keys 文件中。~/.ssh/id_rsa该用户默认的 RSA 身份认证私钥(SSH-2)。此文件的权限应当至少限制为"600"。生成密钥的时候可以指定采用密语来加密该私钥(3DES)。ssh将在登录的时候读取这个文件。~/.ssh/id_rsa.pub该用户默认的 RSA 身份认证公钥(SSH-2)。此文件无需保密。此文件的内容应该添加到所有 RSA 目标主机的 ~/.ssh/authorized_keys 文件中。

转载于:https://www.cnblogs.com/Candies/p/10051130.html

[原创]SSH密钥访问Git仓库配置相关推荐

  1. Git中如何利用生成SSH个人公钥访问git仓库

    Git中如何利用生成SSH个人公钥访问git仓库方法(这里以coding平台为例): 1. 获取 SSH 协议地址 在项目的代码页面点击 SSH 切换到 SSH 协议, 获得访问地址, 请使用这个地址 ...

  2. 使用TortoiseGit,设置ssh方式连接git仓库

    2.使用TortoiseGit,设置ssh方式连接git仓库 转自:https://www.cnblogs.com/zy20160429/p/7493693.html 开始设置之前的准备:建立项目文件 ...

  3. jgit查询远程仓库_通过 JGit 访问 Git 仓库

    一个Git库仓在 JGit里面表现为Repository类,该类可以看作是这个库的句柄.通过Repository类实例,你可以创建JGit命令以及可以控制配置.参数等. 获取Git库仓的引用有很多种方 ...

  4. 使用TortoiseGit,设置ssh方式连接git仓库。

    开始设置之前的准备:建立项目文件夹,初始化git仓库(右键 git  init),右键打开 git bash ,git pull "仓库地址", 把网站上的仓库代码拉取下来. To ...

  5. Git 仓库配置不当 日产北美公司的源代码遭泄露

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士团队 日产北美公司所开发和使用的移动应用及内部工具的源代码遭泄露,原因是该公司的其中一个 Git 服务器配置不当. 瑞士软件工程师 Tillie ...

  6. JGit 通过SSH访问Git仓库报Auth fail

    一.错误信息 错误日志信息: ssh://git@xxgitxx.com:XXX/project/projecrName.git: Auth fail 二. 解决方案 问题原因: ssh的版本过高导致 ...

  7. Windows Git 多用户多仓库配置

    refer from : https://blog.csdn.net/yuanlaijike/article/details/95650625 https://www.jianshu.com/p/93 ...

  8. GitHub防黑客新措施:弃用账密验证Git操作,改用token或SSH密钥,今晚0点执行

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 还在用账户+密码对GitHub上的Git操作进行身份验证? 赶紧整个token(令牌)或SSH密钥吧! 8月14号0点(8月13日9:00 ...

  9. Git之深入解析如何运行自己的Git仓库托管服务器

    一.协议 了解了 Git 的基础使用流程和 Git 的分支管理之后,我们应该已经有办法使用 Git 来完成日常的工作.然而,为了使用 Git 协作功能,还需要有远程的 Git 仓库.尽管在技术上可以从 ...

最新文章

  1. JavaFX 2 GameTutorial第3部分
  2. google站长管理工具
  3. 车路协同 智能路侧决策系统总体架构及应用
  4. 计算机软件行业绩效,关于软件行业的绩效考核.doc
  5. 游戏外挂开发原理初探——植物大战僵尸内存挂为例
  6. 万物智能——百度世界2020”大会
  7. @Autowired 与@Resource选择
  8. 【Matlab三维路径规划】蚁群算法三维路径规划【含源码 179期】
  9. kubernetes高可用集群web页面部署
  10. sql server关系代数练习--进阶
  11. [ZT]狄马:老子与美国南北战争
  12. 评论:电信部门改革的步子能迈得大一些
  13. 哔哩哔哩 BV、AV互转 Java版
  14. 设计一套简单的计算机系统及其指令系统,【精品】计算机组成综合设计指导书...
  15. 力扣 P 344 反转字符串
  16. 端口被占用,简单快捷的解决方法
  17. linux cpu跑分软件,Geekbench 5 5.2.3 硬件性能跑分工具 特别版
  18. 统计数据资源整理:最全中国2010年人口普查数据Excel文件
  19. Qt Creator中如何为某项目单独配置默认编码方式
  20. [ 精华 ]专业网址收藏平台---经典网站收藏

热门文章

  1. HttpSessionActivationListener接口 学习笔记
  2. sklearn—无监督最近邻
  3. 如何使用Nexus搭建Maven私服
  4. 将object类型参数值传递给ObjectDataSource
  5. CSS布局之flex布局
  6. python-虎扑爬虫
  7. VMware vSphere快照之间的互相关系
  8. 网页入侵攻防修炼(一)
  9. extundelete数据恢复实战!!!
  10. 【NetApp】关于Snapmirror强制停止的一点记录