利用Xshell实现非对称秘钥对安全登陆linux服务器(Centos、Ubuntu)
非對(duì)稱(chēng)加密算法簡(jiǎn)述:
對(duì)稱(chēng)加密算法在加密和解密時(shí)使用的是同一個(gè)秘鑰;而非對(duì)稱(chēng)加密算法需要兩個(gè)密鑰來(lái)進(jìn)行加密和解密,這兩個(gè)秘鑰是公開(kāi)密鑰(public key,簡(jiǎn)稱(chēng)公鑰)和私有密鑰(private key,簡(jiǎn)稱(chēng)私鑰)。
1、乙方生成一對(duì)密鑰(公鑰和私鑰)并將公鑰向其它方公開(kāi)。
2、得到該公鑰的甲方使用該密鑰對(duì)機(jī)密信息進(jìn)行加密后再發(fā)送給乙方。
3、乙方再用自己保存的另一把專(zhuān)用密鑰(私鑰)對(duì)加密后的信息進(jìn)行解密。乙方只能用其專(zhuān)用密鑰(私鑰)解密由對(duì)應(yīng)的公鑰加密后的信息。
在傳輸過(guò)程中,即使***者截獲了傳輸?shù)拿芪?#xff0c;并得到了乙的公鑰,也無(wú)法破解密文,因?yàn)橹挥幸业乃借€才能解密密文。
同樣,如果乙要回復(fù)加密信息給甲,那么需要甲先公布甲的公鑰給乙用于加密,甲自己保存甲的私鑰用于解密。
非對(duì)稱(chēng)加密與對(duì)稱(chēng)加密相比,其安全性更好:對(duì)稱(chēng)加密的通信雙方使用相同的秘鑰,如果一方的秘鑰遭泄露,那么整個(gè)通信就會(huì)被破解。而非對(duì)稱(chēng)加密使用一對(duì)秘鑰,一個(gè)用來(lái)加密,一個(gè)用來(lái)解密,而且公鑰是公開(kāi)的,秘鑰是自己保存的,不需要像對(duì)稱(chēng)加密那樣在通信之前要先同步秘鑰。
為何要使用非對(duì)稱(chēng)秘鑰對(duì)登陸服務(wù)器?
在linux終端輸入命令# lastb ,可以查看到有大量的外來(lái)ip嘗試連接linux終端,這是***嘗試暴力破解所致的,賬戶(hù)密碼較弱、使用默認(rèn)的22端口等因素給服務(wù)器安全埋下隱患。下面通過(guò)修改ssh連接的端口號(hào),禁止密碼驗(yàn)證方式登陸,使用非對(duì)稱(chēng)秘鑰方式登陸來(lái)解決這個(gè)問(wèn)題。
利用Xshell實(shí)現(xiàn)非對(duì)稱(chēng)秘鑰對(duì)登陸linux:
1)生成公鑰(Pubic Key)與私鑰(Private Key):
點(diǎn)擊菜單欄的工具->新建用戶(hù)密鑰生成向?qū)А?/span>
雖然SSH2協(xié)議中RSA和DSA算法都可以使用,但是為了保險(xiǎn)起見(jiàn),我們一般都選擇RSA密鑰類(lèi)型,這樣不論你使用的SSH協(xié)議是SSH1還是SSH2都可以使用;密鑰長(zhǎng)度3072以上(位數(shù)越長(zhǎng)越安全)。
正在生產(chǎn)秘鑰,直接下一步即可。
如果希望更安全可言設(shè)置秘鑰密碼,這里自己下一步跳過(guò)。
公鑰格式默認(rèn)的SSH2-OpenSSH即可,保存文件備份好。
通過(guò)公鑰導(dǎo)出對(duì)應(yīng)的私鑰文件,保持文件備份好。
xhell生成公鑰帶pub擴(kuò)展名,xhell生成的私鑰不帶擴(kuò)展名。
2)添加公鑰(Pubic Key)到遠(yuǎn)程Linux服務(wù)器;
用戶(hù)home目錄下創(chuàng)建文件夾 .ssh(隱藏目錄,chmod命令權(quán)限設(shè)置700, ),通過(guò)filezilla上傳公鑰文件到用戶(hù)家目錄的.shh文件夾中,并修改名字為authorized_keys(權(quán)限設(shè)置600),或者.shh文件夾下建立authorized_keys把公鑰內(nèi)容保持其中,保存。
修改sshd_config配置文件(編輯sshd_config時(shí)必須開(kāi)啟允許RSA秘鑰)
vim /etc/ssh/sshd_config?
Port?...?#修改22默認(rèn)端口號(hào),ssh協(xié)議端口號(hào)被知道了很不安全 PubkeyAuthentication?yes?#啟用公告密鑰配對(duì)認(rèn)證方式? AuthorizedKeysFile??%h/.ssh/authorized_keys??#設(shè)定PublicKey文件路徑 RSAAuthentication?yes?#允許RSA密鑰 PasswordAuthentication?no?#禁止密碼驗(yàn)證登錄,如果啟用的話,RSA認(rèn)證登錄就沒(méi)有意義了(TIPS:vim命令模式下輸入 /搜索內(nèi)容 可以快速定位搜索,按n查找下一個(gè),云服務(wù)器修改ip重啟ssh服務(wù)出現(xiàn)無(wú)法連接是因?yàn)榕渲冒踩M沒(méi)有設(shè)置默認(rèn)安全組全部端口開(kāi)放的設(shè)置,點(diǎn)選即可)
重新加載sshd服務(wù)(第一條指令centos,第二條指令ubuntu):?
#?systemctl?restart?sshd.service #?service?ssh?restart #??/etc/init.d/sshd?restart/stop/start/status3)客戶(hù)端載入私鑰(Private Key)登錄(關(guān)鍵!沒(méi)有這一步直接登錄會(huì)提示所選的用戶(hù)密鑰未在遠(yuǎn)程主機(jī)上注冊(cè)的警告提示):
4) 最后驗(yàn)證非對(duì)稱(chēng)秘鑰登陸是否成功,賬戶(hù)登陸是否失效,自定義端口號(hào)是否正常連接,.ssh權(quán)限是否770(drwx------),authorized_keys權(quán)限是否設(shè)置為660(-rw-------),都沒(méi)問(wèn)題后服務(wù)器登陸安全就做好了。
注:?
私鑰,在Xshell里也叫用戶(hù)密鑰?
公鑰,在Xshell里也叫主機(jī)密鑰
轉(zhuǎn)載于:https://blog.51cto.com/qq512430/1894330
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的利用Xshell实现非对称秘钥对安全登陆linux服务器(Centos、Ubuntu)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 第一个c++泛型函数(即模板)
- 下一篇: 最长严格上升子序列