无密码登录原理参考: https://www.cnblogs.com/xz816111/p/9479139.html 直达链接
可以看出无密码对安全性并无影响,甚至更高,也更方便
无密码登陆原理和方法参考: https://blog.csdn.net/m0_37822234/article/details/82494556?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control 直达链接
其他参考在文末
简单概括步骤: 1,在客户端创建密钥对:ssh-keygen 即可,默认就是rsa算法来加密,在出现的提示中不设密码自然就无密码登录 2,ssh-copy-id root@xxx.xxx.xxx.xxx -p 端口号 3,ssh root@xxx.xxx.xxx.xxx -p 端口号 测试一下,成功登录
在第2步中,在建立连接之前,会显示服务器公钥的sha256,提示是否信任?(就是是否加进known_hosts啦)先别急着上传公钥,自己先登陆下服务器,看下服务器的公钥的sha256是否和提示显示出来的一样?不是的话,那接下来要建立的连接就不是连的你的服务器,而是黑客的了,所以最好先核实一下,之后就不用担心了
附:默认的目录结构中的部分典型文件: 服务器端: /etc/ssh: ssh的密钥对,包含你启动ssh服务时自动生成的一堆各种算法的密钥对 还有检查sha256来验证是否未被劫持时默认用的ssh_host_ecdsa_key.pub这个公钥,也就是本文中所称的“服务器公钥” ~/.ssh: authorized_keys(已信任的客户端公钥)这个在本文中是提到的
客户端: /etc/ssh: 本文中无需用到 ~/.ssh:: 私钥id_rsa;公钥id_rsa.pub;known_hosts:已信任的服务器公钥
其他参考: 可以重置一下服务端的密钥:http://www.meilongkui.com/archives/602直达链接 也可以重置下客户端连接服务器xxx.xxx.xxx.xxx的公钥信息:https://blog.csdn.net/liangws_fzu/article/details/50066003直达链接 linux用户的密码藏在哪里呢?https://blog.csdn.net/weixin_40001805/article/details/110811929直达链接 关于ssh登陆验证的第一步:我是否在连接我的服务器而不是被劫持去连接黑客的服务器?https://www.cnblogs.com/rongfengliang/p/10448225.html直达链接 即:客户端的公钥和服务器端的authorized_keys中的是否一样?服务器端的公钥是否和客户端的known_hosts中的一样?这是ok的,不过还有另一种方法:验证它们的sha256或者md5,第一次登录时可以看看,后面就不用担心了
|