ssh-keygen和ssh-copy-id实现免密登录远程主机

ssh-keygen和ssh-copy-id实现免密登录远程主机

ssh免密登录在实际工作中有重要的作用,甚至有的应用部署也必须要免密登录远程主机,例如hadoop环境搭建。

免密登录,需要先在本机生成公钥,然后将公钥拷贝到远程主机,拷贝的过程,既可以手动(在远程主机根目录下创建.ssh目录,然后将公钥存入该目录下authorized_keys文件中即可),也可以直接命令操作ssh-copy-id,这个操作做完了,即可免密登录远程主机。

仔细回想这个过程,先在本机生成公钥,然后将公钥复制到远程主机,接着就可以免密登录远程主机,这个过程似乎与我们想想的不太一样,我们可能希望远程主机免密登录本机。这就好比我要去朋友家,我先将我们家的钥匙放在朋友家,结果我就可以随便进入朋友家里。正常来说,我家钥匙在朋友家里,应该是朋友随便进入我家。通过实验我们来看是什么样的。

这里假定我们需要在node01上远程登录node02机器,这样的话,默认ssh登录,需要输入node02上root用户的密码。如下图所示:


v2-1aabf2fd8a8c370de745dee2c2f87cd0_1440w.webp


node02上本身是没有.ssh目录的。


v2-7c35eb74acc6f963614412582b64dd50_1440w.webp


一、生成类型rsa免密的公钥。

#ssh-keygen -t rsa -P ""

遇到提示,一路回车即可。


v2-7055afb13e2c6ebf2fc103b34df3b549_1440w.webp


查看刚刚生成的公钥id_rsa.pub


v2-051981689768840288d51eaed301ff91_1440w.webp


二、将公钥通过命令ssh-copy-id放入node02机器上。

#ssh-copy-id root@node02

执行这一步操作,需要输入node02上root用户登录的密码。


v2-d3ca6807e91736cb8ca8950d6c9f82d1_1440w.webp


执行成功之后,我们在node02上查看/root/.ssh目录已经生成,并且多了一个名为authorized_keys的文件,里面保存的正是node01上ssh-keygen生成的id_rsa.pub的内容。


v2-3307eef341f8b8fba9d1c4bd924d267a_1440w.webp


三、远程登录node02,无需密码,直接登录成功,如图所示。


v2-b9662420452772bd88bbc81d513eac1a_1440w.webp


另外:免密登录本机也是可以的,默认是需要密码的,只需要将id_rsa.pub拷贝一份保存为authorized_keys。接着ssh登录本机,直接登录成功。


v2-b42bca1e4e7ee8e39a7c2989081ae549_1440w.webp


ssh免密登录的过程我们已经清楚了,现在来说说是怎么回事,为什么和我们想象的不一样。

ssh-keygen的过程,其实不光生成了id_rsa.pub,同时还生成了id_rsa这个文件,这个文件就是私钥,保存在本机的。ssh远程登录的过程,先是客户端请求远程主机,远程主机根据authorized_keys中本机公钥的内容加密一个请求,返回给客户端,客户端然后利用私钥对这个请求解密,再发送给远程主机,远程主机收到了准确的应答,即认为是该客户端是可信的,因此允许登录。该过程可以通过如下图所示更直观。


v2-963b4be5cdbbfa813989cbeb8be907e4_1440w.webp


远程主机上的authorized_keys文件中可以保存多个公钥。多个公钥直接追加在末尾。

了解ssh免密登录的过程,再回过头来,我们发现其实这种方式和远程主机的密码没有任何关系,我们无需知道密码,或者密码随便更改,我们只要保证远程主机有我们的公钥,而我们本地有这么一对公钥和私钥就可以了。



https://zhuanlan.zhihu.com/p/176845561

  • 发表于 2023-01-04 13:38
  • 阅读 ( 96 )
  • 分类:linux

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
omicsgene
omicsgene

生物信息

586 篇文章

作家榜 »

  1. omicsgene 586 文章
  2. 安生水 272 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. 红橙子 78 文章
  6. CORNERSTONE 72 文章
  7. 生信老顽童 52 文章
  8. landy 37 文章