ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

OS + Linux ssh-keygen / ssh-copy-id

2021-12-16 18:05:10  阅读:151  来源: 互联网

标签:公钥 登录 主机 keygen 免密 ssh Linux 远程


s

Ansible自动部署lnmp架构+上线电商

https://www.cnblogs.com/Zrecret/p/12072289.html

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

https://blog.csdn.net/feinifi/article/details/78213297

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

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

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

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

 

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

 

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

#ssh-keygen -t rsa -P ""

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

 

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

 

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

#ssh-copy-id root@node02

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

 

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

 

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

 

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

 

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

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

 

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

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

 

end

标签:公钥,登录,主机,keygen,免密,ssh,Linux,远程
来源: https://www.cnblogs.com/lindows/p/15699323.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有