禁止密碼登入,使用SSh KEY進行登入

2021-06-09 04:06:59 字數 2175 閱讀 8556

我們經常會聽到這樣的乙個說法:使用密碼登入是不安全的。不錯,管理伺服器的時候如果使用root使用者登入並且是使用密碼驗證來登入的話是很不安全的,經常看到一些團隊的伺服器管理是把各個伺服器的密碼設定得很複雜,有大小寫,有下劃線,有特殊符號,長度還很長;都以為這樣就很安全了,別人就很難破自己的伺服器登入密碼了,但是不知道自己的乙個很sb的做法讓自己的伺服器處於極度危險中:他把這些伺服器的ip和使用者名稱密碼儲存到了乙個檔案中,可以看到明文密碼的。只要這個檔案洩露就隨便上伺服器為所欲為了。那麼有沒有更好的辦法來管理伺服器呢?在這裡我推薦一種方法:使用rsa的key來登入伺服器,禁用伺服器密碼登入。

那麼這個方案是怎麼樣實現的呢?在這裡我們常用的遠端伺服器管理工具是securecrt,這個工具應該是運維同事用得比較多的工具了。首先在securecrt裡面生成raskey,按我下面的來操作,如果因為securecrt的版本不同產生文字顯示不同的話也不要緊,大概都是在那個位置。如下所示:

第一步:找到:工具->建立公鑰

點下一步:

在這裡要選擇的是:下拉列表中的ras這個值 

然後會要求你輸入通行短語,這個就是你使用這個建立的raskey要登入伺服器時你用到的密碼,這個密碼是你自己設定的,跟伺服器上原有的密碼無關,最好就把注釋也填一下,這樣比較好看到這個key是屬於哪乙個人的。

下一步之後一般預設是1024,如果覺得1024們的金鑰長度還不夠安全,可以填上乙個最大值:2048,然後點下一步

下一步之後會根據電腦的效能生成金鑰,雖然說明上說會花比較長的時候,但是一般是一閃而過就沒了,如果電腦比較慢的就把滑鼠快速地移動一下就行了。

下一步之後這裡要注意的是要選擇openssh的金鑰格式,經常有人在最後一步搞錯選了預設的。這裡選擇這個格式主要是為了以後使用其它的軟體的時候要用到的key會比較方便。

最後點完成的時候會問你是不是使用這個剛生成的key作為乙個全域性的key,如果是新生成的話就「是」就行了。

到這裡為止就生成了乙個我們使用的rsa的key了。那接下來怎麼樣使用呢?

大家知道生成的金鑰有公鑰和私鑰,私鑰是放在你的電腦上的軟體使用的,就是securecrt用的,公鑰是要放到伺服器上面去的。那麼要放到伺服器的哪個目錄中去呢?下面我們把公鑰放到伺服器上去。

yum -y install lrzsz

這樣就可以上傳檔案了。

我們需要上傳公鑰的路徑在/root/.ssh/這個資料夾下,如果不存在這個資料夾的話可以先建立一下:

mkdir -p /root/.ssh/

chmod -r 600 /root/.ssh/

要記得給到正確的許可權給這個資料夾,然後把公鑰裡的內容加到authorized_keys這個檔案裡去如果不存在這個檔案的話也可以建立乙個:

touch authorized_keys

然後把identity.pub這個檔案的內容加到authorized_keys裡面。

做完這些之後可以直接執行下面的命令讓金鑰登入生效同時禁止密碼登入:

sed -i "s#passwordauthentication yes#passwordauthentication no#g"  /etc/ssh/sshd_config

sed -i "s@#usedns yes@usedns no@" /etc/ssh/sshd_config

service sshd reload

也可以手動地開啟/etc/ssh/sshd_config這個檔案去修改相應的項。

完成之後就實現了rsa的key登入同時禁用密碼登入了。在退出之前最好要先測試一下,先不要關掉當前的crt視窗,新建乙個標籤去用key登入看能不能正常登入,如果正常了再把原先用密碼登入的視窗關掉,如果不這樣的話要是禁用密碼生效了,但是key登入無效的話就杯具了,進不了伺服器了。

rsa的key登入還可以實現伺服器之間傳輸不需要輸入密碼,具體的實現可以參考我之前寫的部落格:

www.codeo4.cn/archives/346

本篇暫時到這裡結束,後續會有更多的關於ras-key  的使用教程,內容包括使用rsakey通過ssh通道連線資料庫,實現對不開放外網的3306埠連線管理mysql資料庫。

使用ssh-key遇到的問題收集

:案例一:

從另一台伺服器scp過來一整個root資料夾之後出現使用問題。無論如何設定都無法使用ssh-key登入,檢查了各種上文提到的許可權問題都沒有辦法解決。最後發現了root資料夾的許可權有不同,copy源的伺服器的資料夾的許可權是777,把許可權改為750就好了。偷懶的時候要注意許可權啊!

SSH使用金鑰登入並禁止密碼登入

1 新建用於登入的使用者 useradd p echo kymo4clpt1 openssl passwd 1 salt dev urandom tr dc alnum head c 32 stdin 9pz7ier8 kymo4clpt1 用於ssh登入的使用者密碼 9pz7ier8 用於ssh登...

linux安全 禁止密碼登入及root登入

linux登入安全很重要,如以前我的文章所講,金鑰登入是一種很安全的遠端連線方式,但是僅僅只有金鑰登入只能保證你的賬戶登入時很安全,不能保證其他賬戶,包括root賬戶的安全 如果不及時做防範,系統照樣有被暴力破解或者利用漏洞侵入獲權的風險。黑客無處不在 其實實現起來很簡單,通過ssh服務的二個配置引...

ubuntu用ssh金鑰登入禁止密碼登入

本文章實驗為在一台電腦上進行 用adduser命令建立使用者,adduser命令用於需要登入的使用者,useradd用於不用登入,比如apache這種程序使用者 建立好後在home目錄下會生成乙個使用者資料夾,guest01為新建立的使用者 在 home as ss 件夾下生成金鑰 傳送到guest...