爲了能夠順利使用key進行認證,首先確定ssh服務的Pubkey認證功能是否打開,執行命令:vi /etc/ssh/sshd_config,找到PubkeyAuthentication yes,看前面的#是否去掉,如果沒有去掉的話把#去掉,然後執行:service sshd restart重啓ssh服務使之生效。
接下來在服務器上執行命令/usr/bin/ssh-keygen -t rsa,會看到如下提示:
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
直接按回車,提示:Enter passphrase (empty for no passphrase):
再次回車,提示:Enter same passphrase again:
仍然按回車。然後執行ls -l /root/.ssh/,會看到有幾個文件:id_rsa,id_rsa.pub,known_hosts。其中id_rsa是我們在客戶端使用的私鑰文件,id_rsa.pub是在服務端的公鑰文件。對id_rsa.pub進行重命名,
執行命令:mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
然後將私鑰文件id_rsa拷貝到我們要連接服務器的電腦上(可以使用ssh或者ftp等工具將文件下載下來)。如果我們是用putty進行登陸Linux,還需要將key進行轉換一下(putty的key格式和ssh-keygen生成的不同)。打開工具PUTTYGEN.EXE,選擇file-->Load private key
然後選擇All Files(*.*),找到下載下來的id_rsa文件,選擇
會提示點擊確定回到PUTTYGEN的主界面,然後點擊save private key按鈕,會有一個提示,直接點是(Y),選擇保存路徑並輸入要保存的文件名,例如pri_key。到這裏key的轉換工作已經完成。下面可以使用key進行登陸了。打開putty在Host Name (or IP address)這一項輸入要登錄的用戶和遠程服務器IP,這裏使用root用戶登陸,ip地址是115.47.169.130則輸入[email protected],然後在左側選擇Connection-->SSH-->Auth 在右側選擇Browse找到我們剛剛保存的pri_key,要保存本次session的話可以切換到Session在Save Sessions 輸入想要保存的名字然後點擊Save即可。點擊Open我們會發現沒有讓我們輸入用戶名和密碼就登陸成功了。如果想一直使用key進行認證可以把密碼認證關閉,編輯/etc/ssh/sshd_config將PasswordAuthentication 設置爲no然後重啓ssh即可,這樣就無法通過用戶名密碼登陸了。