使用ssh连接远程仓库的方法(github)
使用ssh连接远程仓库的方法
但是当我登录虚拟机想提交csapp的代码时,我发现需要验证我的账号密码,感觉每次提交都要输入这个很麻烦。然后就在网上查询了下为何提交代码需要输入账号密码。
使用 HTTPS 方式拉取代码需要验证账号密码的原因是因为 HTTPS 是基于用户名和密码的认证方式。每次使用 HTTPS 协议拉取或推送代码时,都需要提供 GitHub 账号的用户名和密码进行身份验证。
而使用 SSH 连接的方式则不需要每次都验证密码,这是因为 SSH 使用公钥和私钥对进行身份验证。在使用 SSH 连接时,你生成的 SSH 密钥对中的私钥存储在本地计算机,而公钥已经上传到了 GitHub 服务器。当你进行 SSH 连接时,GitHub 会使用你本地私钥对请求进行签名,然后将签名发送到 GitHub 服务器,GitHub 服务器使用你的公钥进行验证,如果验证通过则连接建立,无需输入密码。
git remote -v
查看远程仓库,并且根据输出结果判断与github连接方式:
如果使用的是 HTTPS 连接,则远程仓库 URL 会以 https://github.com/username/repository.git
的形式显示,其中 username
是你的 GitHub 用户名,repository
是你的仓库名称。
如果使用的是 SSH 连接,则远程仓库 URL 会以 git@github.com:username/repository.git
的形式显示,同样 username
是你的 GitHub 用户名,repository
是你的仓库名称。
我这里一开始就是https://github.com/username/repository.git
的形式,所以需要将其转换为ssh的连接方式。
修改步骤:
-
生成SSH密钥对: 如果你还没有生成 SSH 密钥对,首先需要在本地计算机上生成。打开终端或命令行界面,然后输入以下命令生成密钥对:
bashCopy code ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 替换 "your_email@example.com" 为你在 GitHub 上注册的邮箱地址。按照提示完成密钥生成过程,可以选择是否设置密码保护私钥。
-
添加SSH公钥到GitHub: 生成密钥对后,打开生成的公钥文件(通常位于
~/.ssh/id_rsa.pub
),复制公钥内容。 -
登录到 GitHub,进入个人设置中的 "SSH and GPG keys" 页面(路径为 Settings -> SSH and GPG keys -> New SSH key)。
-
点击 "New SSH key" 按钮,粘贴复制的公钥内容到 "Key" 输入框中,并为密钥起一个可识别的标题。
-
点击 "Add SSH key" 按钮,将公钥添加到你的 GitHub 账户中。
-
验证SSH连接:在本地终端或命令行中,切换到你的项目目录,并执行以下命令来将远程仓库的 URL 从 HTTPS 切换为 SSH 连接:
bashCopy code git remote set-url origin git@github.com:username/repository.git 将
username/repository.git
替换为你的 GitHub 用户名和仓库名称。 -
尝试推送或拉取代码:现在你可以使用 SSH 连接远程仓库了。尝试执行
git push
或git pull
命令来推送或拉取代码,并根据需要输入你的 SSH 密钥密码(如果设置了的话)。
简单记录下从发现问题到解决问题的过程,用时1h。
本文作者:上山砍大树
本文链接:https://www.cnblogs.com/shangshankandashu/p/18099444
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步