ssh-keygen和ssh-copy-id实现免密登录远程主机
来源:互联网 发布:索尼vr 知乎 编辑:程序博客网 时间:2024/05/16 00:27
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免密登录的过程,再回过头来,我们发现其实这种方式和远程主机的密码没有任何关系,我们无需知道密码,或者密码随便更改,我们只要保证远程主机有我们的公钥,而我们本地有这么一对公钥和私钥就可以了。
- ssh-keygen和ssh-copy-id实现免密登录远程主机
- SSH使用ssh-keygen 远程登录主机免输入密码
- SSH使用ssh-keygen远程登录主机免输入密码
- ssh-keygen + ssh-copy-id 无密码登录远程服务器
- ssh-copy-id命令详解 & 使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
- ssky-keygen + ssh-copy-id 登陆远程LINUX主机
- 使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
- 使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
- 使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
- ssh-keygen和ssh-copy-id实现SSH无密码登录
- 使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
- 使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
- 使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
- mac使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
- 使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
- Linux下通过ssh-keygen和ssh-copy-id命令实现ssh无密码登录访问
- Linux命令之远程登录/无密码登录-ssh,ssh-keygen,ssh-copy-id
- Linux命令之远程登录/无密码登录-ssh,ssh-keygen,ssh-copy-id
- 每日区块链:MAS高管:新加坡拥有50家区块链创业公司,已成区块链中心
- 在JAVA应用中远程提交MapReduce程序至Hadoop集群运行
- 欢迎使用CSDN-markdown编辑器
- Linux下源码安装mysql5.7.17
- Java数据结构与算法之数据结构-存储结构(10)------Java四大存储结构
- ssh-keygen和ssh-copy-id实现免密登录远程主机
- unity 优化
- 【云栖大会】阿里巴巴成立“达摩院” 引入顶尖科学家3年研发投入将超千亿
- C++11标准 正则表达式
- sprintf函数的简要说明
- 关于打包的时候选择V1V2
- 100 道常见 Hadoop 面试题及答案解析
- Python基础之IO文件目录的操作
- 想成为嵌入式程序员必须知道的0x10个问题(转载)