1.平常工做中,以SSH方式登陸服務器是常常作的事情,每次輸入密碼很煩,能不能不輸入,經過OpenSSL的密鑰驗證的方式來實現呢?linux
2.生產服務器的維護,不免須要遠程登陸,可是目前針對SSH密碼暴力破解的攻擊很是猖獗,所以禁用掉密碼登陸的方式有助於提高服務器的安全性.安全
1.生成密鑰對服務器
linux繫系統可以使用如下命令:ssh
ssh-keygen -t rsa -b 2048
Windows系統可使用PuttyGen工具,生成密鑰對.工具
2.將公鑰上傳至服務器,linux或Mac系統可經過命令ssh-copy-id -i 密鑰文件名 xxx@serverIP 的方式上傳.若是是Windows系統能夠將公鑰文件上傳到服務器上,而後再添加到~./.ssh/authroized_keys文件中.code
3.此後,就能夠在當前客戶端免密碼直接登陸服務器啦.server
若是公司的電腦已經按照上述方式設置了免密碼登陸,想在家裏也想一樣免密碼登陸,那麼這個時候會有兩個選擇:文件上傳
1.把公司電腦的私鑰拷貝到家裏的電腦,而後使用命令:io
ssh -i 私鑰文件 root@serverAddress
這個方法的好處是始終只有一個私鑰,壞處一樣也很明顯,就是同一個私鑰再多臺機器上散落,這違背了私鑰的基本原則,即不能分發的原則.若是私鑰被人拷貝走,後果很嚴重.登錄
2.每臺電腦都生成一個私鑰對,而後將公鑰上傳到服務器.這樣以來,將會有不少私鑰對,若是有一臺電腦的私鑰被盜,那麼能夠經過刪除這個電腦對應的服務端公鑰來屏蔽這個私鑰.
有了密鑰配對方式的登陸後,能夠禁用SSH的密碼登陸,這樣一來,直接把暴力破解SSH密碼的這一條路給堵死了.
vi /etc/ssh/sshd_config .... .... PasswordAuthentication=no ....
須要注意的是,關閉密碼登陸方式後,必定要保存好私鑰,不然就再也登陸不了遠程服務器了.