在某些時候,使用密碼做爲登陸服務器的認證方式是不太安全的,爲避免密碼被暴力破解,許多時候能夠採用ssh密鑰登陸服務器,這裏以CentOS爲例。linux
第一步shell
生成祕鑰對windows
方法1、在服務器上利用ssh-keygen生成,進入到 /root/.ssh/ 輸入:安全
ssh-keygen -t rsa服務器
一路enter跳過(固然你也能夠本身定義,不過不必),會在/root/.ssh下生成公鑰(id_rsa.pub)私鑰(id_rsa) (公鑰是用於服務器端,私鑰是用於客戶端) 而後將私鑰下載至電腦上(登陸時會用到)。ssh
使用Xshell工具下載私鑰工具
一、使用xshell來操做服務很是方便,傳文件也比較方便。加密
二、就是使用rz,sz首先,服務器要安裝了rz,sz rest
三、yum install lrzsz 安裝最後會選擇y,在回車安裝完成io
四、運行rz,會將windows的文件傳到linux服務器
五、運行sz filename,會將文件下載到windows本地
方法2、利用遠程工具(如Xshell)生成
這裏以Xshell爲例,點擊」工具-新建用戶密鑰生成嚮導」所有默認,下一步,提示輸入密鑰加密的密碼,這裏能夠爲空,下一步,將公鑰保存爲文件,命名爲id_rsa.pub,上傳到服務器/root/.ssh下。
第二步、修改/etc/ssh/sshd_config以下部分
一、RSAAuthentication yes 開啓RSA驗證
二、PubkeyAuthentication yes 是否使用公鑰驗證
三、AuthorizedKeysFile .ssh/authorized_keys 公鑰的保存位置
四、PasswordAuthentication no 禁止使用密碼驗證登陸
這裏最好是禁止使用密碼驗證登陸,不然用密鑰就沒多大意義了。更改後保存。
第三步、進入到密鑰保存的目錄:
cd/root/.ssh 新建密鑰驗證文件」authorized_keys」,並將公鑰輸出重定向覆蓋密鑰驗證文件
touch authorized_keys
cat id_rsa.pub >> authorized_keys 這裏建議使用追加而不是覆蓋
修改authorized_keys文件權限爲600
chmod 600 /root/.ssh/authorized_keys
第四步、重啓ssh服務
一、#CentOS 7以前的版本請執行:
service sshd restart
二、#CentOS 7請執行:
systemctl restart sshd.service
接下來就可以經過密鑰登陸服務器了
在打開鏈接的時候會提示導入用戶密鑰,選擇以前保存的私鑰文件」id_rsa」便可。