在登陸Linux進行管理的時候我們通常會使用用戶名和密碼進行登陸,這樣一來是比較麻煩,二來是不安全,為了解決這個問題,我們可以使用公私鑰 (public keys和private keys)進行認證。簡單來說公鑰存放在服務器上,私鑰存放在客戶端,接下來看一下配置過程,首先以root身份登錄服務器。
??????? 為了能夠順利使用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則輸入 root@115.47.169.130,然后在左側選擇Connection-->SSH-->Auth 在右側選擇Browse找到我們剛剛保存的pri_key,要保存本次session的話可以切換到Session在Save Sessions 輸入想要保存的名字然后點擊Save即可。點擊Open我們會發現沒有讓我們輸入用戶名和密碼就登陸成功了。如果想一直使用key進行認證可以把密碼認證 關閉,編輯/etc/ssh/sshd_config將PasswordAuthentication 設置為no然后重啟ssh即可,這樣就無法通過用戶名密碼登陸了。