github设置添加SSH

本文详细对比了GitHub上使用SSH与HTTPS两种方式克隆项目的方法与区别,包括各自的适用场景、操作流程及安全性考量,帮助开发者选择最合适的项目管理方式。

 

转载 

很多朋友在用github管理项目的时候,都是直接使用https url克隆到本地,当然也有有些人使用 SSH url 克隆到本地。然而,为什么绝大多数人会使用https url克隆呢?

这是因为,使用https url克隆对初学者来说会比较方便,复制https url 然后到 git Bash 里面直接用clone命令克隆到本地就好了。而使用 SSH url 克隆却需要在克隆之前先配置和添加好 SSH key 。

因此,如果你想要使用 SSH url 克隆的话,你必须是这个项目的拥有者。否则你是无法添加 SSH key 的。

 

https 和 SSH 的区别:

1、前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆。

2、https url 在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。

 

在 github 上添加 SSH key 的步骤:

1、首先需要检查你电脑是否已经有 SSH key 

运行 git Bash 客户端,输入如下代码:

$ cd ~/.ssh
$ ls

这两个命令就是检查是否已经存在 id_rsa.pub 或 id_dsa.pub 文件,如果文件已经存在,那么你可以跳过步骤2,直接进入步骤3。

 

2、创建一个 SSH key 

$ ssh-keygen -t rsa -C "your_email@example.com"

代码参数含义:

-t 指定密钥类型,默认是 rsa ,可以省略。
-C 设置注释文字,比如邮箱。
-f 指定密钥文件存储文件名。

以上代码省略了 -f 参数,因此,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的 SSH key 代码,如:

Generating public/private rsa key pair.
# Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]

当然,你也可以不输入文件名,使用默认文件名(推荐),那么就会生成 id_rsa 和 id_rsa.pub 两个秘钥文件。

 

接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码),

当然,你也可以不输入密码,直接按回车。那么push的时候就不需要输入密码,直接提交到github上了,如:

Enter passphrase (empty for no passphrase): 
# Enter same passphrase again:

接下来,就会显示如下代码提示,如:

Your identification has been saved in /c/Users/you/.ssh/id_rsa.
# Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com

当你看到上面这段代码的收,那就说明,你的 SSH key 已经创建成功,你只需要添加到github的SSH key上就可以了。

 

3、添加你的 SSH key 到 github上面去

a、首先你需要拷贝 id_rsa.pub 文件的内容,你可以用编辑器打开文件复制,也可以用git命令复制该文件的内容,如:

$ clip < ~/.ssh/id_rsa.pub

b、登录你的github账号,从又上角的设置( Account Settings )进入,然后点击菜单栏的 SSH key 进入页面添加 SSH key。

c、点击 Add SSH key 按钮添加一个 SSH key 。把你复制的 SSH key 代码粘贴到 key 所对应的输入框中,记得 SSH key 代码的前后不要留有空格或者回车。当然,上面的 Title 所对应的输入框你也可以输入一个该 SSH key 显示在 github 上的一个别名。默认的会使用你的邮件名称。

 

4、测试一下该SSH key

在git Bash 中输入以下代码

$ ssh -T git@github.com

当你输入以上代码时,会有一段警告代码,如:

The authenticity of host 'github.com (207.97.227.239)' 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)?

这是正常的,你输入 yes 回车既可。如果你创建 SSH key 的时候设置了密码,接下来就会提示你输入密码,如:

Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa':

当然如果你密码输错了,会再要求你输入,知道对了为止。

注意:输入密码时如果输错一个字就会不正确,使用删除键是无法更正的。

密码正确后你会看到下面这段话,如:

Hi username! You've successfully authenticated, but GitHub does not
# provide shell access.

如果用户名是正确的,你已经成功设置SSH密钥。如果你看到 “access denied” ,者表示拒绝访问,那么你就需要使用 https 去访问,而不是 SSH 。

 

如果你有什么疑问或指正,请留言。

 

产考文档:https://help.github.com/articles/generating-ssh-keys

 

 

 

### 如何在 GitHub设置 SSH 密钥 #### 1. 验证全局用户名和邮箱 在配置 SSH 密钥之前,建议先验证 Git 的全局用户名和邮箱是否已正确设置。可以通过以下命令查看当前的全局用户名和邮箱: ```bash git config --global user.name git config --global user.email ``` 如果没有设置或者需要更改,可以运行以下命令来更新它们[^2]。 ```bash git config --global user.name "Your Name" git config --global user.email "your_email@example.com" ``` --- #### 2. 生成 SSH 公钥 为了能够通过 SSH 协议安全地连接到 GitHub,需要生成一个新的 SSH 密钥对(私钥和公钥)。打开终端或命令提示符,执行以下命令以生成基于电子邮件的新密钥: ```bash ssh-keygen -t ed25519 -C "your_email@example.com" ``` 如果系统不支持 `ed25519` 类型,则可以选择更常见的 RSA 类型替代: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 这一步会提示指定保存位置,默认路径通常是 `~/.ssh/id_ed25519` 或 `~/.ssh/id_rsa`。按回车键接受默认选项即可。之后还会被要求输入密码短语 (passphrase),用于保护私钥文件的安全性[^3]。 完成此操作后,在 `.ssh` 文件夹下会产生两个新文件——一个是私钥 (`id_*.priv`) 另外则是对应的公开部分(`id_*`)。 --- #### 3. 添加公钥至剪贴板 找到刚刚创建好的公钥文件,并将其内容复制到剪切板中以便稍后上传给GitHub服务器端使用: 对于 macOS 用户来说,可以直接利用如下指令自动加载进缓冲区内存里去: ```bash pbcopy < ~/.ssh/id_ed25519.pub ``` 而在 Windows 平台上则可能需要用到其他工具比如 clip.exe 来实现相同功能效果; 对于 Linux 发行版而言也可以借助 xclip 实现这一目标 : ```bash xclip -selection clipboard < ~/.ssh/id_ed25519.pub # 如果安装了 xclip 工具的话. ``` 当然手动打开该文本文件读取也是完全可以接受的方式之一. --- #### 4. 将公钥添加GitHub 账户 登录自己的 GitHub 官方网站账户页面之后导航前往个人资料管理区域中的 **Settings**(设置)->**SSH and GPG keys**, 接着按下那个醒目的绿色按钮 "+ New SSH key". 在此界面里面填写刚才拷贝出来的那一大串字符作为 Key 字段的内容填入框内;Title 则是用来标记这条记录名称方便日后识别区分而已所以随便写点什么都可以比如说设备名字之类的字符串就好.[^1] --- #### 5. 测试 SSH 连接 最后一步非常重要那就是确认整个流程下来没有错误发生从而真正意义上实现了免密码登陆远程仓库的目的! 执行下面这个简单的测试命令看看能不能正常返回预期的结果吧! ```bash ssh -T git@github.com ``` 如果是第一次尝试访问某个主机那么很可能会弹出来一条警告消息询问你是否继续信任对方身份证书之类的东西只需要简单回答 yes 就好了紧接着应该就能看到类似这样的欢迎话语啦:"Hi username! You've successfully authenticated..." 这意味着你现在已经有能力无需每次都重新输入繁琐复杂的账号密码组合也能轻松克隆项目以及推送提交上去咯! ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值