Linux下使用SSH登陆github

Linux下使用github

基本步骤是

  • 申请注册github帐号: 用户名myusername和邮箱mymail@gmail.com
  • 创建仓库: myrepos
  • 创建本地仓库: git clone https://github.com/myusername/myrepos.git
  • 修改本地仓库
  • 上传本地仓库
  • 使用ssh,避免每次都输入密码

修改本地仓库

假如你先进入到你的本地仓库中,生成一个文件myfile.txt

cd myrepo
echo "hello world" >myfile.txt

生成完成之后,本地仓库并没有意识到myfile的存在性(更准确地讲,git已经知道仓库中多了文件,只不过,需要你显式地加进来而已),因此,显式地将新文件加入进来

git add myfile.txt
export EDITOR=vim
git commit -a

git add的作用是将文件加入到索引中(index),git commit -a的作用是将索引中的部分提交到仓库中,这中间还会要求你写日志。它会用系统定义的编辑器(即EDITOR)来打开日志文件,因此,你有必要先定义一个EDITOR之后,再执行git commit。最好是把export EDITOR=vim写到~/.bashrc中去,这样就不需要再管它了。

上传本地仓库

本地作了修改,就需要同步到github服务器上。命令很简单

git push origin master

这条命令会要求你输入用户名和密码,比较烦,你可以用ssh来避免这个问题。

使用ssh

首先,你要生成ssh的公钥和私钥对。公钥是给别人的,私钥自己留着,一对这样的密钥中,公钥的作用是加密,而只有匹配的私钥可以解密。这样,你去登陆别人的服务器时,对方用你的公钥加密一个随机数,然后,你解密之后再发给服务器,如果两个数相同,你的认证也就通过了。

生成密钥的命令是

ssh-keygen -t rsa -C "mymail@gmail.com"

过程中会有交互,如果你不输入密码,则ssh的认证过程是没有密码,即免密码。否则,你以后还是得输一遍密码,则避免了输服务器密码,但是要输自己的ssh密码。

然后,将自己的公钥,即~/.ssh/id_rsa.pub文件内容,交给github。在自己的github的ssh设置页面里面,加入公钥内容即可(用个leafpad/gedit之类的记事本打开,拷到指定位置即可)。

现在,你需要确认认证是否成功

ssh -T git@github.com

它会告诉你是否成功的,否则,参见github官方文档

现在,你和github服务器之间,相当于就达成了ssh认证的协议。但是,还有一个问题,本地仓库不知道如何用ssh啊。

因此,最后一步,你需要修改一下本地仓库。在本地仓库根目录执行

git remote set-url origin git@github.com:myusername/myrepo.git

然后,一切就都OK了。以后执行git push origin master就不用再输命令了,当然换电脑除外(要么重新搞一遍,要么把密钥拷走)。

需要注意的是,每个仓库都有https版的链接和ssh版的链接,如果你git clone的是https链接,则用ssh时需要显式设置,而如果你git clone的本来就是ssh链接,则无需git remote set-url

git clone git@github.com:myusername/myrepo.git
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Linux上配置GitHubSSH密钥,您可以按照以下步骤进行操作: 1. 首先,建议您设置一个密码以增加安全性。您可以使用以下命令复制公钥文件的内容:`cat ~/.ssh/id_rsa.pub`。\[1\] 2. 在GitHub上,打开"Settings",然后选择"SSH and GPG keys",点击"New SSH key"。 3. 在"Key"文本框中粘贴之前复制的公钥内容,并设置一个标题,然后点击"Add SSH key"。\[1\] 4. 您可以通过运行以下命令来检查SSH连接是否成功:`ssh -T git@github.com`。如果您看到类似于"Hi XXXXXX! You've successfully authenticated, but GitHub does not provide shell access."的消息,说明连接成功。\[2\] 如果您在配置过程中没有打印出name和email,这意味着您还没有进行相应的配置。您可以使用以下命令进行配置: - 配置用户名:`git config --global user.name "<userName>"` - 配置邮箱:`git config --global user.email "<email>"`\[3\] 另外,如果您还没有生成SSH密钥,您可以使用以下命令生成:`ssh-keygen -t rsa -C "<email>"`。\[3\] 这样,您就可以在Linux上成功配置GitHubSSH密钥了。 #### 引用[.reference_title] - *1* [Github使用ssh密钥登陆](https://blog.csdn.net/weixin_39591031/article/details/121368476)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [解决github配置ssh密钥后仍然需要登录](https://blog.csdn.net/weixin_44639164/article/details/122389112)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Github 配置ssh密钥](https://blog.csdn.net/qq_25473795/article/details/128245065)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值