赵走x博客
网站访问量:151513
首页
书籍
软件
工具
古诗词
搜索
登录
3、Cenros安装Node
2、阿里云ubuntu服务器挂载数据盘
Ubuntu 生成SSH 密钥
ubuntu 屏幕旋转到正常角度
linux - 查看端口被什么程序占用
Ubuntut 笔记本合上盖子时不进入休眠
如何配置SSH密钥连接Git仓库
1、ubunut更新源
1、ubuntu16.04 apt update 404
如何配置SSH密钥连接Git仓库
资源编号:76382
linux
ubuntu 相关问题
热度:100
文章来源:http://www.pianshen.com/article/6290181242/
# 关于SSH SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;是建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。 现在大多数 Git 服务器都会选择使用 SSH 公钥来进行授权。使用 SSH 协议使 Git 服务器与用户之间的通信更加的安全,另一方面用户访问 Git 服务器时也不再需要每次链接都输入账号和密码。 # 检查现有的SSH 为了向 Git 服务器提供 SSH 公钥,用户需要有自己的公钥,如果用户尚未拥有密钥,必须事先生成一份。 这个过程在所有操作系统上都是相似的。首先,你需要确认自己是否已经拥有密钥。 >在正式开始之前,强烈建议 Windows 用户使用 Git 程序包自带的 git bash 命令行工具进行操作。 默认情况下,Liunx 用户的 SSH 密钥存储在其 ~/.ssh 目录下。 进入该目录并列出其中内容,你便可以快速确认自己是否已拥有密钥: ``` $ cd ~/ .ssh $ ls id_rsa id_rsa.pub known_hosts ``` 默认情况下,Windows 用户的 SSH 密钥存储在 C:\Users\Administrator\.ssh 目录下。 ``` $ cd C:/Users/Administrator/.ssh $ ls id_rsa id_rsa.pub known_hosts ``` 关键是看有没有用 something 和 something.pub 来命名的一对文件,这个 something 通常就是 id_dsa 或 id_rsa。有 .pub 后缀的文件就是公钥,另一个文件则是密钥。 # 生成新的SSH密钥 假如没有这些文件,或者干脆连 .ssh 目录都没有,这个时候你就需要用 ssh-keygen 来进行创建。在 Linux/Mac 系统中,ssh-keygen 随 SSH 软件包提供;在 Windows 上,该程序包含于 MSysGit 软件包中。 ``` $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/schacon/.ssh/id_rsa): Created directory '/home/schacon/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/schacon/.ssh/id_rsa. Your public key has been saved in /home/schacon/.ssh/id_rsa.pub. The key fingerprint is: d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local ``` 键入命令回车后, ssh-keygen 首先会向你确认密钥的存储位置 —— Liunx 的默认为~/.ssh 目录下,Windows 用户默认的在 C:\Users\Administrator\.ssh 目录下。然后它会要求你输入两次密钥口令。如果你不想在使用密钥时输入口令,将其留空即可。 现在,进行完上述操作的用户就可以将各自的公钥配置到 Git 仓库;或者发送给你的 Git 服务器管理员(假设 SSH 服务被设定为使用公钥机制)。通常你只需要复制 .pub 文件的内容用于配置,或者发邮件给管理员。 Liunx 下输入 cat ~/.ssh/id_rsa.pub 即可查看。 ``` $ cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3 Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx NrRFi9wrf+M7Q== schacon@mylaptop.local ``` Windows 用户需要切换到 C:\Users\Administrator\.ssh 目录下查看。 ``` $ cd C:/Users/Administrator/.ssh $ cat id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3 Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx NrRFi9wrf+M7Q== schacon@mylaptop.local ``` # 测试SSH链接 完成上述操作拿到你的密钥之后,你就可以将你的 SSH 密钥添加到你的 Git 仓库。下边分别以 GitHub 和 CODING 为示例简单介绍一下如何添加 SSH 公钥。 >注:示例图片来自各平台线上帮助文档。 ### GitHub: * 1、复制已经生成的 SSH 密钥。 * 如果您的SSH密钥文件的名称与示例代码不同,请修改文件名以匹配当前设置。 * 复制密钥时,请勿添加任何换行符或空格。 * 2、登录到你的 GitHub 账号,在任意页面的右上角,点击你的账户头像,然后单击“设置”。  * 3、在用户设置侧栏中,单击SSH和GPG密钥。  * 4、单击“新建SSH密钥”或“添加SSH密钥”。  * 5、在“标题”字段中,为新密钥添加描述性标签。 * 6、将密钥粘贴到“密钥”字段中。  * 7、单击“添加SSH密钥”。  * 8、根据提示,确认您的GitHub密码。  ### CODING: CODING 的 SSH 密钥分为账户密钥和项目密钥,分别用于连接整个账户和连接单个项目。两者的设置是相似的,以下仅对账户 SSH 密钥进行说明。 * 1、复制已经生成的 SSH 密钥。 * 如果您的 SSH 密钥文件的名称与示例代码不同,请修改文件名以匹配当前设置。 * 复制密钥时,请勿添加任何换行符或空格。 * 2、登录到你的 CODING 账号,在页面的右上角,点击你的账户头像,然后单击“个人设置”。 * 3、在用户设置侧栏中,单击 SSH 公钥。 * 4、单击右上角的“新增公钥”。  * 5、将第一步中复制的内容填写到「公钥内容」一栏,公钥名称可随意填写。 * 6、设定公钥有效期,可选择具体日期或设置永久有效。  * 7、单击添加,根据提示,确认您的 CODINNG 密码。 # 完成 SSH 密钥添加后后,你可以对你的连接进行测试,同时建立与 Git 仓库的身份认证。 ``` # Github $ ssh -T git@github.com # CODING $ ssh -T git@git.coding.net ``` 在验证的过程中系统可能提示你:无法建立主机'github.com / coding.net(IP ADDRESS)'的真实性。 像这样的: ``` The authenticity of host 'github.com (IP ADDRESS)' can't be established. RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. Are you sure you want to continue connecting (yes/no)? ``` 或者这样的: ``` The authenticity of host 'github.com (IP ADDRESS)' can't be established. RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8. Are you sure you want to continue connecting (yes/no)? ``` 这个时候,你只需要验证您看到的消息中的 RSA 密钥指纹是否与 生成新的 SSH 密钥 中的 RSA 密钥指纹匹配,然后键入yes即可: ``` Hi username! You've successfully authenticated. # Coding Hello username! You've connected to Coding.net by SSH successfully! ``` 当验证生成的消息返回并包含您的用户名,就说明 SSH 公钥设置成功。 如果出现下面提示: ``` /etc/ssh/ssh_config: line 52: Bad configuration option: clientaliveinterval /etc/ssh/ssh_config: line 53: Bad configuration option: clientalivecountmax /etc/ssh/ssh_config: terminating, 2 bad configuration options ``` 运用shh -T -v git@github.com查看具体出错信息,再根据信息来调试 解决方案: ``` /etc/ssh/ssh_config ``` 将下面的注释掉 ``` #ClientAliveInterval 60 #ClientAliveCountMax 3 ```