為了vps的安全,我開啟了vps的ssh 秘鑰登陸設置,通過goole搜索資料,操作成功。以下為操作記錄。這裡假設以root身份,vps的ip為192.168.0.1
第一步:產生秘鑰即keys
基本上vps都是ssh密碼登陸,首先是產生秘鑰,分為公鑰和私鑰(public key和private key),公鑰是放到vps上的,私鑰放到自己這裡,用於自己遠程登錄用的,產生秘鑰方法有多種
第一種最簡單,即通過vps自身產生秘鑰
復制代碼代碼如下:#ssh-keygen -t rsa //這裡同是產生公鑰和私鑰
以下為輸入命令後產生的輸出:
復制代碼代碼如下:Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): //這裡表示秘鑰存放地點,直接回車
Created directory '/root/.ssh'. //默認創建/root/.ssh以保存秘鑰
Enter passphrase (empty for no passphrase): //輸入密鑰密碼,可以直接回車
Enter same passphrase again: //重復密鑰密碼,可以直接回車
Your identification has been saved in /root/.ssh/id_rsa. //提示公鑰和私鑰已經存放在/root /.ssh/目錄下
Your public key has been saved in /root/.ssh/id_rsa.pub.
#cd /root/.ssh/
# ls
id_rsa.pub id_rsa //可以看到兩個秘鑰,將這兩個保存好,將私鑰拷貝到本地
#mv id_rsa.pub authorized_keys //將公鑰改名為authorized_keys
#chmod 600 /root/.ssh/authorized_keys //修改秘鑰的權限,600表示屬主有rw權限
當然如果本地自己是用linux則生成的秘鑰,要將公鑰拷貝到vps上,並修改名字和權限
#scp id_rsa.pub [email protected]:/root/.ssh
#mv id_rsa.pub authorized_keys //這裡是改名字,是在/root/.ssh目錄下操作
第二種方法
用xshell產生秘鑰。這裡強烈推薦xshell+xftp,十分好用,可以同是管理多個vps,支持多個shell窗口
第二步:用秘鑰登陸
因為我們弄好後要測試ssh秘鑰登陸,看是否設置成功,如果沒成功還能密碼登陸,所以修改後一定要測試下,對於vps提供商提供了console的,倒是 可以隨意整,畢竟還有console可以用,倘若沒有,建議先測試,我就是忘了添加另外一個管理員賬戶,而自己又禁止了root遠程登登陸,導致所有客戶 端都登陸不上,還好我有console,修改sshd_config配置,允許root遠程登錄,才搞定了,以下相當於登陸測試。
首先可以用winscp將公鑰拷貝到遠程的linux服務器上即vps,記得名字要改成authorized_keys
自己用私鑰和vps上的公鑰配對,配對成功就登陸了。
必須修改/etc/ssh/sshd_config 文件,將RSAAuthentication 和 PubkeyAuthentication 後面的值都改成yes ,保存
復制代碼代碼如下: #/etc/init.d/sshd restart //再重啟sshd服務,我的是centos
用秘鑰登陸也有很多種,看你喜歡用什麼客戶端了,
第一種,是用putty登陸,用putty登陸有點要注意的是要轉換秘鑰,大家可以參考軍哥教程。特別要注意問題就是,putty官網的puttygen轉換後的秘鑰有問題,登陸時候會出現“Server refused our key”錯誤。
解決的辦法是用winscp官網下載的winscp安裝程序自帶的puttygen來轉換秘鑰,就可以正常登陸了。
我的轉載的putty,winscp教程,適合新手
第二種,用xshell登陸。我是用xshell,大家可以參考軍哥教程
第三種,用linux登陸vps
復制代碼代碼如下:#chmod 600 id_rsa //將本地的私鑰改成rw權限
#ssh [email protected] /root/id_rsa //id_rsa為私鑰,根據自己的私鑰路徑寫
三種登陸過程可能都會提示你填寫秘鑰密碼,填上就可 以登錄成功了。
測試ssh秘鑰登陸成功後,就可以設置一些更安全的配置,如
復制代碼代碼如下:PasswordAuthentication no //表示禁止密碼口令登陸</p>
<p>permitrootlogin no //表示禁止root遠程登錄