在WSL的系统中配置免密和GitHub传输数据(SSH)
在 WSL(Windows Subsystem for Linux)系统中配置免密与 GitHub 传输数据,主要包括设置 SSH 密钥对、将公钥添加到 GitHub 账户以及确保可以通过 WSL 正常使用这些密钥。以下是详细的步骤:
1. 检查现有 SSH 密钥
首先,检查是否已经存在 SSH 密钥对。SSH 密钥通常存放在 ~/.ssh 目录下。
ls -al ~/.ssh
查找名为 id_rsa.pub 的文件。如果这些文件已经存在,你可以跳过第 2 步直接进入第 3 步。否则,请继续生成新的 SSH 密钥。
2. 生成新的 SSH 密钥
如果你没有现成的 SSH 密钥,或者想要为 GitHub 创建一个新的专用密钥,可以使用以下命令生成一个新的 SSH 密钥对。
ssh-keygen -C "your_email@example.com"
-C 参数允许你添加一个标签(通常是你的电子邮件地址),这有助于识别密钥。
按提示操作,可以选择默认位置保存密钥,也可以设置密码短语(passphrase)。如果不希望每次使用时都需要输入密码,可以留空。
3. 添加 SSH 密钥到 SSH 代理
启动 SSH 代理并添加新生成的私钥:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
如果你设置了密码短语,此时需要输入该密码。
4. 将公钥添加到 GitHub
复制公钥内容:
cat ~/.ssh/id_rsa.pub
然后登录到 GitHub,按照以下步骤操作:
- 进入右上角的头像菜单,选择 Settings。
- 在左侧边栏中点击 SSH and GPG keys。
- 点击 New SSH key 按钮。
- 在 Title 字段中给这个密钥起个名字(例如,My WSL)。
- 将刚才复制的公钥粘贴到 Key 字段中。
- 点击 Add SSH key 完成添加。
5. 测试 SSH 连接
确保一切配置正确后,可以通过以下命令测试与 GitHub 的连接:
ssh -T git@github.com
你应该会看到一条消息,确认你已经成功地通过 SSH 连接到 GitHub。
6. 使用 SSH URL 克隆仓库
最后,使用 SSH URL 来克隆你的 GitHub 仓库。可以在仓库页面找到 SSH URL,通常格式如下:
git clone git@github.com:<username>/<repository>.git
替换 username 和 repository 为你的 GitHub 用户名和仓库名称。
7. 解决端口 22 被拒绝的问题
如果你遇到 ssh: connect to host github.com port 22: Connection refused 错误,可能是因为网络环境限制了 SSH 端口 22 的访问。这时可以尝试使用 GitHub 提供的备用 SSH 端口 443。
修改 SSH 配置文件。编辑 ~/.ssh/config 文件(如果不存在则创建它),并添加以下内容:
Host github.com
Hostname ssh.github.com
Port 443
User git
保存文件后,再次尝试通过 SSH 连接到 GitHub:
ssh -T git@github.com