GitHub 使用 SSH连接

1、检查现有的 SSH 密钥

首先,检查你是否已经有一个 SSH 密钥。打开终端(Linux 或 macOS)或 Git Bash(Windows),然后运行以下命令:

ls -al ~/.ssh

这会列出 .ssh 目录中的文件。如果你看到类似 id_rsa 和 id_rsa.pub 的文件,那么你已经有 SSH 密钥了。

2、生成新的 SSH 密钥

如果你没有现有的 SSH 密钥,或者想创建一个新的,可以使用以下命令生成:

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

这里,your_email@example.com 是你在 GitHub 上注册的电子邮件地址。

  • 按 Enter 接受默认的文件位置(通常是 ~/.ssh/id_rsa)。
  • 你可以为 SSH 密钥设置一个密码(passphrase),但这不是必须的。如果你选择设置密码,每次使用 SSH 密钥时都需要输入它。

3、添加 SSH 密钥到 SSH 代理

为了使用 SSH 密钥,你需要将其添加到 SSH 代理中。首先,确保 SSH 代理正在运行

eval "$(ssh-agent -s)"

然后,将你的 SSH 私钥添加到 SSH 代理中:

ssh-add ~/.ssh/id_rsa

4、将 SSH 公钥添加到 GitHub

你需要将生成的公钥(.pub 文件)添加到 GitHub 账户中。

cat ~/.ssh/id_rsa.pub

这将显示公钥的内容,你可以将其复制。

  1. 登录到你的 GitHub 账户,进入 Settings > SSH and GPG keys

  2. 点击 New SSH key 按钮。

  3. 在 Title 字段中,输入一个描述性的标题(例如“My Laptop”)。

  4. 在 Key 字段中,粘贴你刚刚复制的公钥。

  5. 点击 Add SSH key 保存。

5、测试 SSH 连接

测试 SSH 连接是否正常工作:

ssh -T git@github.com

第一次连接到 GitHub 时如果一切正常,SSH 客户端会提示你是否信任连接的主机。这是因为 SSH 为了安全起见,会在第一次连接时生成并保存该主机的指纹(fingerprint)。你应该会看到类似以下的提示消息:

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)?

 在提示符下输入 yes,然后按回车。提示如下信息,表示连接成功。

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

 “Connection refused”错误解决

出现这个问一般都是如下结果

  1. 防火墙或网络问题:某些网络环境可能会阻止 SSH 连接(端口 22)。
  2. SSH 代理问题:SSH 代理没有正确配置。
  3. GitHub 服务器问题:虽然不常见,但 GitHub 服务器可能出现问题。

 

1. 检查网络连接

确保你的网络连接正常,并且没有防火墙或代理服务器阻止 SSH 连接。你可以尝试访问其他网站或服务来确认网络连接是否正常。

2. 使用 HTTPS 代替 SSH

如果由于网络限制无法使用 SSH,你可以改用 HTTPS 克隆和推送代码。例如:

git clone https://github.com/username/repository.git

3. 使用备用 SSH 端口

GitHub 也支持通过 HTTPS 协议隧道的 SSH 连接。你可以配置 Git 使用端口 443 而不是 22 来进行 SSH 连接。

编辑或创建 ~/.ssh/config 文件,添加以下内容:

Host github.com
  HostName ssh.github.com
  Port 443
  User git

保存文件后,再次尝试连接:

ssh -T git@github.com

检查 SSH 代理

确保 SSH 代理正在运行并且你的私钥已经添加到代理中:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

5. 检查 SSH 密钥

确保你的 SSH 密钥已经正确添加到 GitHub 账户中。你可以重新生成密钥并重新添加:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
ssh-add ~/.ssh/id_rsa

然后将新的公钥添加到 GitHub:

cat ~/.ssh/id_rsa.pub

复制输出的公钥并添加到 GitHub 账户的 SSH and GPG keys 部分。

6. 检查 DNS 解析

确保你的 DNS 解析正常,可以使用 ping 或 nslookup 命令检查:

ping github.com
nslookup github.com

7. 重置 SSH 配置

有时候重置 SSH 配置文件可以解决问题。删除 ~/.ssh/known_hosts 文件,然后再次尝试连接:

rm ~/.ssh/known_hosts
ssh -T git@github.com

8. 使用代理

如果你的网络需要通过代理服务器访问外部资源,确保你的 SSH 客户端配置了正确的代理设置。你可以在 ~/.ssh/config 文件中添加代理设置,例如:

Host github.com
  HostName github.com
  Port 22
  User git
  ProxyCommand nc -X connect -x your_proxy_host:your_proxy_port %h %p
### 如何在 GitHub 上配置和使用 SSH 密钥 #### 检查现有 SSH 密钥 为了确认是否已有可用的 SSH 密钥,在终端执行命令来查看 `~/.ssh` 文件夹下是否有现有的密钥文件,比如 `id_rsa` 或者 `id_ecdsa` 等[^1]。 ```bash ls -al ~/.ssh ``` 如果没有找到任何私钥,则意味着需要创建一个新的 SSH 密钥对。 #### 创建新的 SSH 密钥 通过运行下面这条指令生成一对新的 RSA 类型的 SSH 密钥,并为其设定一个密码短语: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 此过程中会被询问保存位置,默认路径通常是最佳选项;之后会提示输入并再次确认用于保护该密钥的安全码(passphrase),这一步骤可选但推荐设置以增加安全性[^2]。 #### 添加新生成的 SSH 私钥至本地代理服务 为了让计算机能够自动管理多个不同站点的身份认证信息而不必每次都手动输入安全码,建议启动 ssh-agent 并添加刚刚产生的私钥给它处理: ```bash eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa ``` 这里假设刚才选择了默认名称存储密钥。如果有其他名字,请替换上述命令中的路径部分为实际存在的 .pub 文件对应的私钥文件名[^3]。 #### 将公钥复制到 GitHub 账户中 获取刚生成的那个 `.pub` 结尾的公开密钥的内容,可以通过如下方式读取出来再粘贴进 GitHub 的个人资料页面里指定的位置完成关联绑定工作: ```bash cat ~/.ssh/id_rsa.pub ``` 登录自己的 GitHub 后进入 Settings -> SSH and GPG keys 页面点击 New SSH key 按钮按照说明填写标题以及把之前拷贝好的那串字符作为键值提交上去即可[^4]。 #### 测试连接有效性 最后一步用来检验整个过程是否顺利完成——尝试无密码访问远程仓库服务器端口上的 git@github.com 用户账户下的 shell 接口,正常情况下应该只显示一条欢迎消息而不会要求进一步提供凭证证明身份合法性: ```bash ssh -T git@github.com ``` 如果一切顺利的话将会看到一句类似于 Hi username! You've successfully authenticated... 这样的反馈文字表明已经成功建立了基于 SSH 协议的安全通信渠道。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值