方法一,
有的時候經常需要登錄ssh,每次都需要輸入密碼,會比較繁瑣。所以設置了一下使用RSA公鑰認證的方式登錄Linux。
首先需要在服務器端設置/etc/ssh/sshd_config
# vim /etc/ssh/sshd_config
修改如下兩行為yes。其實大多數情況下不用修改,默認就是yes。
RSAAuthentication yes
PubkeyAuthentication yes
(1) 如果客戶機和服務器都是Linux機器,那麼我們使用下面的方法:(後面第2節會提到怎麼在Windows下使用Putty生成密鑰對)
我們需要在客戶端生成RSA密鑰對。使用ssh-keygen命令:
# ssh-keygen -t rsa
參數t的意思是type,後面跟著加密類型,這裡我們是rsa。
然後會提示你輸入密鑰保存完成文件名,這裡我們需要使用默認的id_rsa,之後才能正常才能登錄。如果你生成的密鑰作為其他用處,那麼可以命名為其他名稱:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/cake/.ssh/id_rsa):
之後會提示你輸入一個passphrase,我們這裡可以留空,這樣我們登錄的時候就不許輸入密碼。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
然後會提示你密鑰生成成功。這是你的私鑰保存為~/.ssh/id_rsa,你的公鑰是~/.ssh/id_rsa.pub
我們現在需要做的是,把id_rsa.pub的內容,添加的服務器端的~/.ssh/autherized_keys文件最後。
你可以把這個文件上傳到服務器端,然後使用命令:
# cat id_rsa.pub >> ~/.ssh/autherized_keys
到這裡就完成了。
(2) 在Windows下使用Putty生成密鑰對:
Putty的安裝目錄下有個puttygen.exe程序,我們運行這個程序。
之後點擊Generate,開始生成密鑰對。我們需要根據提示,在指定方框內隨機滑動鼠標。這是為了根據鼠標軌跡,產生一些隨機數據。
之後生成結束,我們點擊Save Private Key將私鑰存放在某個目錄中。然後賦值最上面文本框中的全部內容,粘貼到Linux服務器端的autherized_key的最後。
我們現在可以關閉這個小程序。
現在打開Putty,在左邊的選項中,選擇Conneciton–SSH–Auth,在Private key file for authentication中,選擇剛才保存的私鑰路徑就可以了。
到此位置,Putty也可以不用密碼登錄了。
方法二
使用Linux主機生成的密匙
1、生成密匙
[[email protected] .ssh]#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:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
e4:9a:47:a7:b4:8a:0b:98:07:b8:70:de:6b:16:2c:[email protected]
2、將 /root/.ssh/id_rsa.pub改名為/root/.ssh/authorized_keys
[[email protected] .ssh]#mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
3、將私鑰id_rsa拷貝到遠程客戶端
1)、如果遠程客戶端是linux,拷貝到遠程客戶端/root/.ssh/即可
2)、putty作為遠程客戶端在
putty不能識別直接從服務器拷貝來的私鑰,需要使用puttygen.exe進行格式轉換
(1)、打開puttygen.exe --> Conversions --> Import Key
(2)、選擇拷貝過來的私鑰文件id_rsa
(3)、Save private key->id_rsa.ppk(保存私鑰)
4、打開putty.exe
1)、Session --> Host Name (填寫服務器地址或者域名)
2)、Connection --> SSH --> Auth (點Browse選擇剛生成的id_rsa.ppk)
3)、open
成功打開後出現如下提示:
login as: root
Authenticating with public key "imported-openssh-key"
----------------------------------------------------------------------------------
當然你有可能會遇到這個錯誤 [因為我遇到了,呵呵]:
Permissions 0755 for '你配置的公鑰文件路徑' are too open.
這個是因為這幾個文件權限設置的有點問題
執行命令: chmod 600 你的文件