使用公钥+私钥(MobaXterm设置无密码登录)

       MmobaXter 设置无密码登录的主要原因是为了提高安全性和便利性。具体来说:
1.安全性:无密码登录通常依赖于公钥认证,如SSH公钥认证。在这种机制中,用户的公钥被放置在远程服务器的authorized_keys文件中。当用户尝试连接时,服务器会使用用户的公钥进行身份验证,而无需密码。这种方法比传统的密码认证更安全,因为公钥加密更难被破解,而且不会因为密码泄露或遗忘而导致安全风险。
2.便利性:无密码登录还提供了便利性。一旦设置了无密码登录,用户在连接远程服务器时就不需要每次都输入密码,从而简化了连接过程,提高了工作效率。
       然而,虽然无密码登录具有这些优点,但也需要谨慎管理。例如,如果私钥丢失或被盗,攻击者可能会利用它来访问远程服务器。因此,建议妥善保管私钥,并定期检查和更新安全设置。
总的来说,MobaXterm设置无密码登录是为了在提供便捷连接的同时,加强远程访问的安全性。

目录

一、什么是密钥对
二、生成密钥对
三、保存公钥和私钥
四、上传公钥
五、启用私钥,使用私钥ssh登录远程节点
六、测试无密码登录
七、总结

一、什么是密钥对


密钥对(Key Pair)是一种非对称加密技术中的核心概念,它由一对密钥组成:公钥(Public Key)和私钥(Private Key)。
公钥:密钥对中公开的部分,可以对外发布,用于加密会话密钥、验证数字签名,或者加密那些可以用对应的私钥解密的数据。任何人都可以使用公钥进行加密操作,但只有私钥的持有者才能解密这些数据。
私钥:密钥对中的非公开部分,必须保密,由用户自行保管。私钥用于解密公钥加密的数据,以及创建数字签名。私钥加密的数据只能使用对应的公钥来解密,从而确保了数据传输和存储的安全性。

​二、生成密钥对


1.启动虚拟机

2.打开“MoxbaXterm”

3.单击【Generate】按钮,开始生成密钥对

4.密钥对生成完毕

​ 三、保存公钥和私钥

1.准备工作
新建名为 "ProLinux" 的文件夹,用来保存公钥文件和私钥文件。如图:

2.复制密钥

3.双击进入刚才创建的"ProLinux"文件夹
新建"文本文档"将其重命名为mk.pub

4.选择>打开方式(H)>记事本打开mk.pub,粘贴公钥内容(刚才复制的内容)并保存,如图:​


5.回到【MobaXterm SSH Key Generator】界面
单击【Save private key】按钮,开始保存【私钥文件】操作

6.进入刚才创建的"ProLinux"文件夹,在【文件名(N):】中填写私钥文件名
① 此处以【mk】为例
② 单击【保存】按钮,保存私钥文件

7.查看密钥文件
按照步骤操作完毕后,会得到两个文件
① mk.pub:公钥文件,必须上传到远程主机(详情见下一小节)。
② mk.ppk:私钥文件,在MobaXterm的Session属性中启用之后,连接远程主机生效(详情见下一小节)​


​​ 四、上传公钥


1.准备authorized_keys文件
选中 "mk.pub" 按【Ctrl+C】复制文件



2.直接按【Ctrl+V】粘贴文件,创建"mk - 副本.pub",按“F2”将文件名改为“authorized_keys”​


3.双击【User sessions 192.168.2.22(root) 】连接远程主机

4.进入root目录,创建.ssh目录,上传【authorized_keys】文件


​​ 五、启用私钥,使用私钥ssh登录远程节点


1.右击 【User sessions 192.168.2.22(root)】选择【Edit session 】编辑远程主机配置参数
弹出设置界面
选择【Advanced SSH settings】标签
找到【User private key】参数,单击输入框尾部的文件图标
弹出文件选择框
双击私钥文件【mk.ppk】
单击【打开】
点击OK完成配置


​​ 六、测试无密码登录


1.启用私钥后,需确认私钥是否生效
点击【Setting】​


2.进入【General】界面
点击【MobaXterm passwords management】​


3.进入【MobaXterm passwords setting】界面
① 选中之前保存的密码
② 单击【Delete all】​


4.退出MobaXterm与远程主机的连接​


5.在MobaXterm主界面双击【User sessions 192.168.2.22(root) 】,测试连接远程主机​


6.如果登录成功,说明私钥设置没问题​

 
​​注:如果出现server refused our key则有可能是由以下原因造成:
1、.ssh文件夹权限错
.ssh 以及其父文件夹(root为/root,普通用户为Home目录)都应该设置为只有该用户可写(比如700)。
以下为原因:
ssh服务器的key方式登录对权限要求严格。对于客户端: 私钥必须为600权限或者更严格权限(400), 一旦其他用户可读, 私钥就不起作用(如640), 表现为系统认为不存在私钥
对于服务器端: 要求必须公钥其他用户不可写, 一旦其他用户可写(如660), 就无法用key登录, 表现为:Permission denied (publickey).
同时要求.ssh目录其他用户不可写,一旦其他用户可写(如770), 就无法使用key登录, 表现为:Permission denied (publickey).
2、SElinux导致
密钥文件不能通过SElinux认证,解决方法如下:
1 # restorecon -R -v /home #root用户为/root 
我遇到的就是这种情况,找了好久还找到是这个原因,因为是新装的虚拟机,SElinux还没关闭。
3、sshd配置不正确
正确配置方法如下:
vim /etc/ssh/sshd_config
1、找到 #StrictModes yes 改成 StrictModes no (去掉注释后改成 no)
2、找到 #PubkeyAuthentication yes 改成 PubkeyAuthentication yes (去掉注释)
3、找到 #AuthorizedKeysFile .ssh/authorized_keys 改成 AuthorizedKeysFile .ssh/authorized_keys (去掉注释)
4、保存
5、重启ssh服务即可


七、总结


使用公钥和私钥通过MobaXterm设置无密码登录是一个安全且便利的过程。这种方法的总结如下:
首先,公钥和私钥的生成是设置无密码登录的基础。公钥相当于一把锁,用于锁定远程主机的访问权限;而私钥则是一把钥匙,用于解锁并访问远程主机。通过MobaXterm等工具,用户可以轻松生成这一对密钥。
接下来,保存并管理这些密钥至关重要。公钥需要被复制到远程主机的特定位置(通常是.ssh目录下的authorized_keys文件),以便远程主机能够识别并接受来自具有相应私钥的客户端的访问请求。私钥则必须妥善保管,避免泄露给未经授权的用户。
在上传公钥到远程主机后,就可以开始使用私钥进行无密码登录了。当用户尝试通过SSH连接到远程主机时,系统将使用公钥进行身份验证,而不是传统的密码方式。只要客户端拥有正确的私钥,并且该私钥与远程主机上存储的公钥相匹配,就可以成功建立连接。
总的来说,使用公钥和私钥通过MobaXterm设置无密码登录是一种高效且安全的方式,它避免了密码泄露的风险,并提高了远程访问的便利性。然而,这种方法的实现需要一定的技术知识和操作经验,因此用户在使用前应确保充分了解相关步骤和注意事项。
附:
1、Putty server refused our key的三种原因和解决方法_行知小筑的技术博客_51CTO博客
此博客详细说明了server refused our key的问题及如何解决。

  • 31
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值