無密碼登入原理參考:
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 [email protected] -p 端口号
3,
ssh [email protected] -p 端口号
測試一下,成功登入
在第2步中,在建立連接配接之前,會顯示伺服器公鑰的sha256,提示是否信任?(就是是否加進known_hosts啦)先别急着上傳公鑰,自己先登陸下伺服器,看下伺服器的公鑰的sha256是否和提示顯示出來的一樣?不是的話,那接下來要建立的連接配接就不是連的你的伺服器,而是黑客的了,是以最好先核實一下,之後就不用擔心了,另外,發現如果漏掉了這一步,會導緻~/.ssh下沒有authorized_keys檔案
附:預設的目錄結構中的部分典型檔案:
伺服器端:
/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,第一次登入時可以看看,後面就不用擔心了