MobaXterm有保存密码的功能,远程连接主机可以不用输入密码。但如果为了保证数据信息的保密传输,使只有具备资格的一方才能解密。那么在这种情况下使用公钥和私钥就可以解决了。
为了满足本人日常需求,虚拟机远程连接不输入密码,又能让其他的设备不保存我的密码。特此从各个网站内容学习整理出来了这篇文章。
Ps:本文图文较多,如果只是看一看步骤的话,可以从目录里快速转到相应的地方,如果想要实践的话,建议大家慢慢操作,不要迷失了吖
目录
一、什么是公钥和私钥
在非对称加密算法中,存在两个密钥:公钥和私钥。私钥用于解密,而公钥用于加密。私钥由持有者保管,不会与其他人共享。持有者可以使用私钥对使用公钥加密的信息进行解密。
感兴趣的小伙伴可以点击下面的链接仔细了解一下哦!
什么是公钥和私钥http://t.csdnimg.cn/sxBZA
二、生成密钥
- 启动虚拟机并使用MobaXterm进行远程连接(本文用的是CentOS,大家注意要用安装了图形界面的虚拟机),这里我用的是root账号登录。
- 打开MobaXterm,首先点击工具Tools,然后选择MobaKeyGen (SSH key generator)
- 接着点击Generate创建(温馨提醒:鼠标在绿色进度条下面左右滑动进度会更快哦)
- 出现下图即完成创建
三、将密钥存入Windows
- 同时按住【Win】+【E】唤出文件资源管理器
- 接着任意进入一个磁盘,并新建一个文件夹,这里我是直接创建在D盘里的“Mxkey”文件夹,建议大家跟我一样,方便后续寻找
- 进入文件夹,点击右键新建一个文本文档
- 建好的文档后将其改名为 “ pk.pub ”,如下图
- 按【Enter】保存后会弹出如下警告,点击 “ 是 ”
- 右键点击 “ pk.pub ”,在打开方式中选择“ Edit with MobaTextEditor ”使用记事本打开
- 进入刚才创建密钥的界面,选中并复制箭头所指框中的所有内容(可通过点击右键选择“全选”,再点击右键选择“复制”)
- 回到刚才打开的记事本界面,在空白处点击右键,再点击“ Paste ”粘贴
- 接着按住【Ctrl】+【S】保存(注意核对一下文本内容是否复制正确)
- 回到生成密钥的界面,点击“ Save private key ”开始生成私钥
- 由于未设置私钥,此时会弹出警告,这里我们点击“ 是 ”
- 此时会弹出一个窗口,我们进入刚才创建的文件夹“ Mxkey ”,文件名还是同先前一样输入“ pk ”,注意这里的保存类型为" *.ppk ",确认无误后点击保存
- 这时我们的文件夹“ Mxkey ”中会出现“ pk.ppk ”和“ pk.pub ”两个文件。我们使用鼠标左键点击选中“ pk.pub ”文件,接着点击右键“ 复制 ”“ pk.pub ”文件
- 在空白处再次点击右键“ 粘贴 ”,生成“ pk-副本.pub ”
- 右键点击“ pk-副本.pub ”,选择重命名
- 将“ pk-副本.pub ”重命名为“ authorized_keys ”,然后点击保存如果未出现上述警告,请移步另一篇博客——MobaXterm无法免密登录的解决方法
- 至此,Windows的密钥文件已全部创建完毕(小Tips:*.ppk类型的文件是私钥文件,*.pub类型的文件是公钥文件,authorized_keys是等会儿需要上传到虚拟机内的公钥文件副本)
四、将公钥存入虚拟机
- 回到MobaXterm的虚拟机远程连接界面,在界面的左上角点击创建文件的小图标
- 输入文件名“ .ssh ”,然后点击【OK/确定】
- 创建好后在左边文件栏双击进入“ .ssh ”文件
- 打开刚才的文件资源管理器,将“ authorized_keys ”文件拖入左边黄色框中空白区域
- 出现下图红色框中内容即公钥保存成功
五、 测试免密登录
- 点击“ X ”号退出虚拟机的远程连接登录界面
- 再次点击刚才退出的虚拟机
- 输入用户名“ root ”,然后回车(Ps:由于之前的 .ssh文件是在root里面创建的,所以我们这里使用root的登录)
- 登录成功!(Ps:由于本人一开始没有考虑到自己安装的CentOS是无图形界面的,有很多功能是残缺的,在CentOS无法实现免密登录。所以登录成功的图片是RedHat的)
如果在实现上述操作之后仍需要输入密码, 请移步另一篇博客——MobaXterm无法免密登录的解决方法
六、结束语
恭喜大家能够看到这并坚持下来!!!
我知道,这个免密登录的配置过程并不是那么容易。在我自己配置免密的过程中也遇到了许多问题,我将这些整理出来了一篇博客,如果有需要的小伙伴可以去看看哦!