当前位置:   article > 正文

SSH公/私秘钥的生成及使用_openssh生成公钥和私钥

openssh生成公钥和私钥

如果使用GitHub比较多的朋友,对SSH Key肯定也不陌生,当我们SSH进行代码的pull&push时,往往需要我们配置SSH Key。

如果Linux用的多朋友,肯定对SSH Key都很熟悉,当我们使用ssh命令连接其他Linux服务器时,如果没有配置SSH Key,它会要求我们输入密码,这不仅繁琐,而且受信任的网络背景下还需要输入密码,明显不太合乎情理,况且在某些没有人为干预的情况下,不方面输入密码,输入密码这种方式将变得不可行,不安全:

这个时候我们就需要SSH Key了,接下来介绍使用OpenSSH来生成SSH Key。

首先,我们需要安装OpenSSH。

幸运的是,Linux默认情况下已经安装了OpenSSH,输入ssh即可验证是否已安装,如果未安装,可以使用apt-get(Ubuntu)或者yum(CentOS)来进行安装。

而Windows环境下,OpenSSH 在 2018 年秋季已添加至 Windows,并包含在 Windows 10 和 Windows Server 2019 中,如果是其它版本的WIndows,那可能需要自己安装配置了。


生成SSH Key

生成SSH Key使用ssh-keygen工具组件,一般的,我们生成的是RSA公/私秘钥的SSH Key。

生成之前,首先我们最好先确认我们之前是否已经生成过了,否则重新生成将会覆盖原来的SSH Key。 

  1. Linux:检查/home/[用户]/.ssh目录(root用户则是/root/.ssh目录)下
  2. 是否存在id_rsa和id_rsa.pub两个文件
  3. Windows:检查C:\Users\[用户]\.ssh目录下是否存在id_rsa和id_rsa.pub两个文件

其中,id_rsa保存的是私钥,id_rsa.pub保存的是公钥。

如果两个文件存在,那么不用生成,直接使用就行了,当然,你也可以将.ssh目录下的文件都删除,然后重新生成SSH Key,但这样会导致原来的SSH Key失效。

如果不存在,我们执行下面的命令开始生成SSH Key:

  1. # 可以使用 -f 参数指定私钥的存放文件,不指定,
  2. Linux默认保存到/home/[用户]/.ssh/id_rsa(root用户则是/root/.ssh/id_rsa)
  3. Windows默认保存到C:\Users\[用户]\.ssh\id_rsa
  4. # 可以使用 -N 参数指定秘钥
  5. ssh-keygen -t rsa

 命令执行后,在用户目录下的.ssh目录中就会生成id_rsa和id_rsa.pub两个公私秘钥文件了。


使用SSH Key

有了SSH Key,我们就可以使用ssh免密连接了,比如我还有一台服务器:192.168.209.129,这台服务上有个用户feng,那么我们在/home/feng/.ssh目录下创建authorized_keys文件(如果不存在),然后将上面生成的id_rsa.pub文件的内容追加进去:

  1. # 进入用户主目录
  2. cd ~
  3. # 如果用户主目录下.ssh目录不存在,那么直接创建
  4. mkdir .ssh
  5. # 打开authorized_keys文件,将id_rsa.pub文件的内容追加进去,然后保存退出
  6. vim .ssh/authorized_keys

之后使用ssh连接192.168.209.129这台服务器就不需要密码了。

我们还可以在github,gitee或者gogs等git平台使用SSH Key,在它们的管理后台都有一个SSH Key配置的选项卡页面,以gogs为例:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/477803
推荐阅读
相关标签
  

闽ICP备14008679号