Public Key(非对称,asymmetric)认证使用一对相关联的Key Pair(一个公钥Public Key,一个私钥Private Key)来代替传统的密码(或我们常说的口令,Password)。顾名思义,PublicKey是用来公开的,可以将其放到SSH服务器自己的帐号中,而PrivateKey只能由自己保管,用来证明自己身份。
使用PublicKey加密过的数据只有用与之相对应的PrivateKey才能解密。这样在认证的过程中,PublicKey拥有者便可以通过PublicKey加密一些东西发送给对应的PrivateKey拥有者,如果在通信的双方都拥有对方的PublicKey(自己的PrivateKey只由自己保管),那么就可以通过这对Key Pair来安全地交换信息,从而实现相互认证。在使用中,我们把自己的PublicKey放在通过安全渠道放到服务器上,PrivateKey自己保管(用一个口令把PrivateKey加密后存放),而服务器的PublicKey一般会在第一次登录服务器的时候存放到本地客户端(严格地说来服务器的PublicKey也应该通过安全渠道放到本地客户端,以防止别人用他自己的PublicKey来欺骗登录)。
在众多SSH登录认证中,传统的单口令(Password)认证用得比较多,所以在这里我们主要对比一下SSH认证中的口令(Password)认证和PublicKey认证的区别。
a.基于主机IP(rhost)的认证:对于某个主机(IP)信任并让之登录,这种认证容易受到IP欺骗攻击。b. Kerberos认证:一个大型的基于域的认证,这种认证安全性高,但是太大、太复杂不方便部署。
c. PAM认证:类似于传统的密码认证,是绝大多数Unix/Linux系统自带的一个认证和记帐的模块,它的功能比较复杂,配置起来比较麻烦。而且,容易由于配置失误而引起安全问题。汗维
d.传统的Unix/Linux口令(或密码Password)认证:在客户端直接输入帐号密码,然后让SSH加密传输到服务器端验证。这种认证方式有着如下明显的缺点:
3.Public Key配置(ssh-keygen命令生成公钥和私钥即可)
使用一种被称为"公私钥"认证的方式来进行ssh登录. "公私钥"认证方式简单的解释:首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)
然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥.在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了
1.查看是否已经有了ssh密钥:cd ~/.ssh
dst60065:xmon-mobile jack$ cd /Users/jack/.ssh/
dst60065:.ssh jack$ ls
id_rsa id_rsa.pub known_hosts
2.在github上添加ssh密钥,这要添加的是“id_rsa.pub”里面的公钥。
3:测试:ssh git@github.com
dst60065:.ssh jack$ cd /Users/jack/work_space/git/xmon-mobile/
dst60065:xmon-mobile jack$ ls
dst60065:xmon-mobile jack$ git clone git@git.dev.sh.ctripcorp.com:yf.wu/xmon-mobile.git
Cloning into 'xmon-mobile'...
remote: Counting objects: 271, done.
remote: Compressing objects: 100% (242/242), done.
remote: Total 271 (delta 22), reused 248 (delta 11)
Receiving objects: 100% (271/271), 2.53 MiB | 2.73 MiB/s, done.
Resolving deltas: 100% (22/22), done.
Checking connectivity... done.
dst60065:xmon-mobile jack$ git config --globaluser.name"jack"
相关推荐
本工具目的为解决开发者操作的便捷性 解决的问题为 git 配置多个ssh key 我们配置好两个 sshkey 后 分别为两个 如果是 github.com gitlab.com gitee.com 这三个当然没有问题 开发此工具碰到的问题是 开发者碰到同一...
git教程,看完之后git基本操作完全了解
ssh的互信,git服务器的配置,测试拉代码
Windows下搭建基于ssh的git服务器
gitBash 客户端 ssh 服务器远程登陆神器 Git-2.15.0-64-bit
sshkey 是放在服务器端,这样pull commit push就无需输入密码,这里提供个教程
资源为图文讲解,weblogic+ssh+git升级远程项目,文档步骤很详细,
Git是目前世界上最先进的分布式版本控制系统。相比于SVN,分布式版本系统的最大好处之一是:在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作!当有网络的时候,再把本地提交推送一下就完成了...
Git采用SSH协议创建远程仓库,并把本地工程上传到远程仓库
git+ssh ubuntu 安装配置笔记 已经测试通过
先看本文档基本上手,在实际使用中遇到什么问题在深入研究《Git权威指南.pdf》或者google,这种学习规划的效率应该是最好的。欢迎更正和补充。 2.GIT和SVN、CVS的区别 版本库分两种 集中式版本库:CVS和SVN 分布式...
搭建基于SSH公钥访问的Git远程仓库。附加安全受限shell配置。
简单记录了CENTOS6中GIT安装,ssh-keygen生成,客户端使用TortoiseGit加载KEYGEN连接GIT服务器的过程。
SSH in GitBash & TortoiseGit.pdf SSH in GitBash & TortoiseGit.pdf SSH in GitBash & TortoiseGit.pdf
Git操作手册.pdf
git小乌龟安装之后参考如下文档 https://www.cnblogs.com/camg/p/14708382.html 配置秘钥,和git公用一个公钥
询问通行证R,Git和SSH的安全密码输入 跨平台实用程序,用于提示用户输入凭据或密码短语,例如,通过服务器进行身份验证或读取受保护的密钥。 包括适用于MacOS和Windows的本机程序,因此不需要“ tcltk”。 可以两种...
git保存帐号操作,刚开始使用git操作每次都要输入账号密码,用这个设置完之后就不用每次都输账号密码了。
Git-Eclipse使用已配置好的远程仓库中的项目SSH,要先注册码云,使用的eclipse
把本地现有的 代码通过ssh(git) 推送到 远程仓库,手把手教如何配置ssh命令以及怎么拉取代码,推送代码到远程仓库