在本地配置SSH并连接到GitHub以及其它服务器(详细图文教程)

写项目每次上GitHub都要用户名密码比较麻烦。那么可以配置SSH授权你的设备无需用户名和密码进行直接连接。

设备

博主展示的方法适用于MacLinux设备。博主使用的操作系统是Ubuntu 18.04 LTS

教程

以下是分步教学,可参考GitHub官网

  1. 确认你还没有设置SSH。打开终端,输入cd ~./ssh(默认目录)或者其它你设置过的ssh目录位置并回车。如果终端返回No such file or directory,那说明你应该新设置一个SSH。
    SSH1
  2. 生成SSH密钥。接下来在终端输入ssh-keygen -t rsa并回车。其中你要按两次回车:第一次让你选择SSH密钥的存储位置,回车表示存在默认位置/home/[用户名]/.ssh/id_rsa;第二次回车时会选择passphrase。passphrase相当于一个可以本地加密你的SSH密钥的密码,防止其他人用你的机器使用SSH。直接回车默认设置passphrase为无,或者可以选择自己的密码。完成后你的SSH密钥就生成好了,输出如下图:
    SSH2
  3. 确认生成SSH密钥。在终端内重新输入步骤一的指令cd ~/.sshls,确认SSH密钥文件已被生成,如下图:
    SSH3
  4. 复制SSH密钥。在执行完步骤三后,在终端输入cat id_rsa.pub获取SSH公共密钥内容。复制ssh-rsa ... @mail.ericfrenzy.fun。最后的邮箱地址是博主当时设置邮箱服务器时生成的。邮箱地址是什么无所谓,只要是自己能认出的邮箱地址就行。
    SSH4
  5. 在GitHub上添加SSH密钥。在设置页面找到SSH and GPG keys,然后点击页面上的New SSH key。然后会出现下方第二张图所示的窗口。在Title处随意填写一个你能认出是你想授权设备的名字,然后把刚才复制的SSH公共密钥复制到下方的文字框内,然后点击Add SSH key
    SSH5.1
    SSH5.1
  6. 测试连接。回到你刚刚的机器打开新的终端,输入ssh -T git@github.com然后回车。接下来跳出一行字不用管,输入yes然后回车。如果最后出现Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.那就说明你的SSH密钥配置成功了!注意:在用如git clone等命令时,要用SSH的URL而不是HTTPS的。
    SSH6

原理

SSH(Secure Shell)协议是一个非常安全的加密和传输协议。它好就好在加密很复杂并且使用非对称密钥加密(所以安全性很高),而且不需要人为记住密码(所以既减少了人为泄露隐私的概率,又让授权变得很方便)。它的加密涉及到一对密钥:公钥和私钥。生成这一对密钥的常见方法有Rivest–Shamir–Adleman (RSA)Elliptic Curve Digital Signature Algorithm (ECDSA)
进行SSH验证的时候,客户端会向服务器发送连接请求。服务器收到后会让客户端提供证书。客户端会使用公钥和私钥生成一个SSH证书,并将其发给服务器。服务器验证通过后会记录用户的公钥。这样,在客户端和服务器传输信息的时候,都会使用公钥加密。私钥的作用除了证明你的身份(只有你的电脑上才会有自己的私钥,所以不要分享给别人),还有就是保证了只有持有密钥的人才能解密用公钥加密的信息。这也是为什么你和GitHub服务器SSH验证通过后就无需再次使用用户名和密码验证。

功能拓展

既然介绍过原理,那么这个方法生成的SSH密钥也可用来链接其它服务器。流程大致如下:

  1. 配置SSH服务器。常见的工具是OpenSSH。在服务器端首先打开终端运行ssh localhost。如果返回connection refused那就说明服务器还没有配置好SSH。那么可以输入sudo apt-get install openssh-server ii.并回车来配置SSH服务器。安装好后输入sudo service ssh status并回车。如果它的状态是loadedactive,那么说明服务器的SSH就配置好了。
  2. 用用户名和密码连接到服务器。如果你已经配置好服务器的SSH或者你想连接到已知的服务器,打开本地的终端输入ssh username@host_ip并回车。其中username是你已经在服务器上注册好的用户名,host_ip是服务器的IP地址。注意,这是使用用户名和密码的连接方法,所以每次你使用这个方法都要重新输入用户名和密码。
  3. 用SSH passphrase连接到服务器。用这种方法你不需要每次登录服务器都输入密码(如果你没有设置passphrase)。首先要把你的公钥上传至服务器。可以使用ssh-copy-idscp,或者手动上传。由于第一种方法最为快捷和方便,这里着重介绍第一种方法。但在这之前,要先生成SSH密钥(参考上方步骤的ssh-keygen -t rsa方法。设置的passphrase就是你用SSH登录需要的密码)。生成好后,在本地终端使用ssh-copy-id username@host_ip命令,其中username是你已经在服务器上注册好的用户名,host_ip是服务器的IP地址。之后输入你在服务器上注册好的用户名的密码(你只需要这一次,因为之后就是使用SSH私钥进行验证了)。输入完成后在客户端终端输入ssh username@host_ip,然后尝试使用passphrase登录服务器。

结束语

码字不易,如果我的文章对你有帮助的话的话欢迎点赞收藏评论转发支持,这将对我意义重大!有任何问题和建议也请第一时间与我分享!

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要使用SSH密钥连接GitHub,请按照以下步骤操作: 1. 首先,请确保您已经在GitHub帐户中添加了SSH密钥。如果您还没有添加,请打开GitHub的“Settings”页面,然后选择“SSH and GPG keys”选项卡。接下来,单击“New SSH key”按钮,并将您的公钥复制到指定的文本框中。 2. 然后,在您的本地计算机上打开终端,并输入以下命令: ``` ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 注意,将“your_email@example.com”替换为您的电子邮件地址。 3. 按下Enter键后,您将被提示输入要在其中保存密钥的文件路径。默认情况下,密钥将被保存在“C:\Users\your_username\.ssh”目录中,并将使用默认文件名“id_rsa”。 4. 您可以按Enter键接受默认文件路径和文件名,或者输入自定义文件名。 5. 接下来,您将被提示输入密码短语。这是可选的,但如果您想进一步保护您的密钥,则可以输入密码短语。请注意,您必须在将来每次使用该密钥时都输入此密码短语。 6. 现在,您已经成功生成了SSH密钥。您可以在指定的目录中找到它。 7. 接下来,将您的公钥添加到GitHub帐户中。您可以打开公钥文件(默认为“id_rsa.pub”),并将内容复制到GitHubSSH密钥设置中。 8. 最后,在终端中输入以下命令: ``` ssh -T git@github.com ``` 这将测试您的SSH连接并显示您的GitHub用户名。如果一切正常,您应该能够看到欢迎消息,并且您的SSH连接已成功。 现在,您已经可以使用SSH连接GitHub,并可以在本地计算机上克隆、推送和拉取存储库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EricFrenzy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值