最近查看linux系統日誌:/var/log/secure,發現服務器出現大量暴力破解登錄記錄,並且是不同的IP帳號在嘗試破解,所以不好寫iptables來禁掉IP登錄(太多了);又由於公司預算,沒有固定的外網IP登錄服務器,所以不好寫iptabls只允許某些IP訪問。因此準備使用密鑰認證方式來登陸服務器,也避免了不必要的麻煩操作。
1.配置sshd只允許使用public_key登錄
cd /etc/ssh/
①先進行備份,並創建普通用戶
cp sshd_conf sshd.conf.bak
useradd chengzhi
②sshd_conf配置
主要修改如下幾個內容:
PermitRootLogin no # 默認爲註釋,先配置爲禁止root用戶登陸,允許root登陸太危險了。
##RSAAuthentication yes #啓用 RSA 認證(我創建的是DSA,所以沒有開啓這個選項)
AuthorizedKeysFile .ssh/authorized_keys # 驗證公鑰的存放路徑
PubkeyAuthentication yes # 默認爲註釋,啓用公鑰認證
PasswordAuthentication no # 禁止密碼認證,默認是打開的。
保存後,重新啓動ssh服務。
RedHat,CentOS: service sshd restart
2.公鑰生成
方法一(服務器生成密鑰對)
在服務器中執行:
ssh-keygen -t dsa
可以得到兩個文件,id_dsa是私鑰,id_dsa.pub是公鑰
複製這兩個文件到本地windows下
cat .ssh/id_dsa.pub > /home/chengzhi/.ssh/authorized_keys將公鑰放入到驗證文件
方法二(由SecureCRT生成密鑰對,此方法我沒測試過)
點擊工具--創建公鑰
如果不填寫就是不加密密鑰,填寫就是加密密鑰
密鑰長度,一般默認就行
開始生成密鑰中
複製Identity.pub文件到服務器,放在home目錄的.ssh子目錄下,並執行
ssh-keygen -X -f Identity.pub > authorized_keys
3.配置SecureCRT使用公鑰認證
打開會話選項
4.測試
重新用SecureCRT連接一下試試,能夠直接登錄就是成功了。