五條強化 SSH 安全的建議

2021-09-08 19:13:04 字數 2982 閱讀 8955

當你檢視你的 ssh 服務日誌,可能你會發現充斥著一些不懷好意的嘗試性登入。這裡有 5 條常規建議(和一些個別特殊策略)可以讓你的 openssh 會話更加安全。

強化密碼登入

密碼登入很方便,因為你可以從任何地方的任何機器上登入。但是它們在暴力攻擊面前也是脆弱的。嘗試以下策略來強化你的密碼登入。

解決 too many authentication failures 報錯

當我的 ssh 登入失敗,並顯示「too many authentication failures for carla」的報錯資訊時,我很難過。我知道我應該不介意,但是這報錯確實很礙眼。而且,正如我聰慧的奶奶曾經說過,傷痛之感並不能解決問題。解決辦法就是在你的(客戶端的)

~/.ssh/config
檔案設定強制密碼登入。如果這個檔案不存在,首先創個

~/.ssh/
目錄。

$ mkdir ~/.ssh

$ chmod 700 ~/.ssh

然後在乙個文字編輯器建立

~/.ssh/confg
檔案,輸入以下行,使用你自己的遠端網域名稱替換 hostname。

hostname remote.site.com

pubkeyauthentication=no

(lctt 譯註:這種錯誤發生在你使用一台 linux 機器使用 ssh 登入另外一台伺服器時,你的 .ssh 目錄中儲存了過多的私鑰檔案,而 ssh 客戶端在你沒有指定 -i 選項時,會預設逐一嘗試使用這些私鑰來登入遠端伺服器後才會提示密碼登入,如果這些私鑰並不能匹配遠端主機,顯然會觸發這樣的報錯,甚至拒絕連線。因此本條是通過禁用本地私鑰的方式來強制使用密碼登入——顯然這並不可取,如果你確實要避免用私鑰登入,那你應該用 -o pubkeyauthentication=no 選項登入。顯然這條和下兩條是互相矛盾的,所以請無視本條即可。)

使用公鑰認證

公鑰認證比密碼登入安全多了,因為它不受暴力密碼攻擊的影響,但是並不方便因為它依賴於 rsa 金鑰對。首先,你要建立乙個公鑰/私鑰對。下一步,私鑰放於你的客戶端電腦,並且複製公鑰到你想登入的遠端伺服器。你只能從擁有私鑰的電腦登入才能登入到遠端伺服器。你的私鑰就和你的家門鑰匙一樣敏感;任何人獲取到了私鑰就可以獲取你的賬號。你可以給你的私鑰加上密碼來增加一些強化保護規則。

使用 rsa 金鑰對管理多個使用者是一種好的方法。當乙個使用者離開了,只要從伺服器刪了他的公鑰就能取消他的登入。

以下例子建立乙個新的 3072 位長度的金鑰對,它比預設的 2048 位更安全,而且為它起乙個獨一無二的名字,這樣你就可以知道它屬於哪個伺服器。

$ ssh-keygen -t rsa -b 3072 -f id_mailserver
以下建立兩個新的金鑰,

id_mailserver

id_mailserver.pub
id_mailserver
是你的私鑰--不要傳播它!現在用

ssh-copy-id
命令安全地複製你的公鑰到你的遠端伺服器。你必須確保在遠端伺服器上有可用的 ssh 登入方式。

$ ssh-copy-id -i  id_rsa.pub user@remoteserver

/usr/bin/ssh-copy-id: info: attempting to log in with the new key(s), to filter out any that are already installed

user@remoteserver's password:

number of key(s) added: 1

now try logging into the machine, with: "ssh 'user@remoteserver'"

and check to make sure that only the key(s) you wanted were added.

ssh-copy-id 會確保你不會無意間複製了你的私鑰。從上述輸出中複製登入命令,記得帶上其中的單引號,以測試你的新的金鑰登入。

$ ssh 'user@remoteserver'
它將用你的新金鑰登入,如果你為你的私鑰設定了密碼,它會提示你輸入。

取消密碼登入

一旦你已經測試並且驗證了你的公鑰可以登入,就可以取消密碼登入,這樣你的遠端伺服器就不會被暴力密碼攻擊。如下設定你的遠端伺服器

/etc/sshd_config
檔案。

passwordauthentication no
然後重啟伺服器上的 ssh 守護程序。

設定別名 -- 這很快捷而且很酷

你可以為你的遠端登入設定常用的別名,來替代登入時輸入的命令,例如

ssh -u username -p 2222 remote.site.with.long-name
你可以使用

ssh remote1
你的客戶端機器上的 ~/.ssh/config檔案可以參照如下設定

host remote1

hostname remote.site.with.long-name

port 2222

user username

pubkeyauthentication no

如果你正在使用公鑰登入,可以參照這個:

host remote1

hostname remote.site.with.long-name

port 2222

user username

identityfile ~/.ssh/id_remoteserver

openssh 文件 很長而且詳細,但是當你掌握了基礎的 ssh 使用規則之後,你會發現它非常的有用,而且包含很多可以通過 openssh 來實現的炫酷效果。

給新手站長的五條建議

新手做站,做得最多的就是垃圾站,垃圾站,指的是一些不需要投入太多精力。只需每天更新。採集,就可以的 這是我的理解,比如電影站,站,站,等等,新手站接觸到做站大多數都是從垃圾站開始,我也一樣,在這裡和大家分享一下我做站的心得,希望對新手有幫助,也希望與大家一起交流。一 建站程式推薦 用得比如好的一些程...

關於企業安全的五個建議

最近乙個時期以來,美國各大機構不斷發生的資料洩露事件引發了人們一連串的疑問 現有的安全工具和安全方法究竟能否有效地應對新型的安全威脅?過去十年間,眾多的私人企業和上市企業花費了數十億美元來提公升自身的安全性,然而那些惡意的攻擊者們似乎總都能成功地繞開其攻擊道路上的任何障礙物。這一趨勢導致很多企業不得...

雲端資料遷移的9條安全建議

原文 9 data security tips for cloud migration 作者 ryan francis翻譯 賴信濤責編 仲培藝 當遷移到新的雲端環境時,公司需要謹慎地估量一下服務商的安全性,以及自己公司的內部政策。很多公司不會花時間考慮和其他組織共享雲端資源的風險,以及那些資料中心的...