歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 最新SSH自動登錄方案(RSA)

最新SSH自動登錄方案(RSA)

日期:2017/2/28 14:50:33   编辑:Linux教程

一. 前言

直接使用ssh連接到服務器時,需要手動輸入密碼。如果能夠不用手動輸入密碼,且自動登錄到SSH服務器的話,那就爽了。

經過一晚上的研究,終於搞定了。(原因在於舊的配置方式已不能正確使用了)

在進行配置前,先假定ssh客戶端為ssh-client,ssh服務器為ssh-server(運行ssh服務的一邊)。

二. 配置方法

1. 在ssh-client一邊使用ssh-keygen生成一對rsa key

$ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/abee/.ssh/id_rsa): <回車>

Enter passphrase (empty for no passphrase): <回車>

Enter same passphrase again: <回車>

執行過程中連續回車即可,成功生成key後。private key 保存在~/.ssh/id_rsa,而public key保存在~/.ssh/id_rsa.pub

2. 在ssh-client一邊使用ssh-add將剛生成的private key加入到ssh agent中(舊配置方式沒有這步喲)

$ssh-add ~/.ssh/id_rsa

Identity added: id_rsa (id_rsa)

3. 將上述的public key(id_rsa.pub)的內容附加到ssh-server端的.ssh/authorized_keys中

$cat ~/.ssh/id_rsa.pub | ssh username@ssh-server "cat - >> authorized_keys"

4. 此時,配置完成啦。當再次使用ssh username@ssh-server登錄時,不再使用密碼啦。

三. 重啟ssh-client

重啟ssh-client後,需要重新使用ssh-add將上面的private key加入到ssh-agent中。因為ssh-agent重啟後,其沒有保留上次記錄的private key,因此需要重新使用ssh-add將private key加入。

經過測試,對同一個private key進行多次ssh-add是沒有問題的,總體感覺ssh-add或者ssh-agent會過濾重復的private key。

為了實現一次配置,重復使用。可以考慮將ssh-add的執行放到~/.profile下,每次重新登錄X或者Console後,系統就會自動從~/.profile中的ssh-add命令將private key加到ssh-agent中。

$echo "ssh-add ~/.ssh/id_rsa" >> ~/.profile

這個方法在Ubuntu10.04測試通過。

四. 單個ssh-client與多個ssh-server

經過測試,在不止一個ssh-server的情況下,每一個ssh-server可以共用上述的publice key。而ssh-client僅用一個pirvate key.

五. 特別注意

1. 上述使用RSA方式進行ssh身份驗證,具體可以查看man ssh。從上面兩種環境可以看出,ssh-keygen產生的private key是關鍵文件,可以說這個就是ssh的登錄密碼。因此在ssh-client一側,該文件的權限一般設置為600。

2. 在ssh-server側存儲public key的authorized_keys文件的權限至少是400,即最少也要用戶可讀。另外由於該public key可以計算出private key,且一般還會寫入其他public key,所以其權限一般設置為700。

3. 一般情況下,對於多個ssh-server,最好的方案是針對每一個ssh-server使用唯一一對RSA key。這樣可以防止一個private key洩漏後,只有一個ssh-server的ssh安全受影響,其他ssh-server不受影響(因為使用不同的RSA key)。

六. 與舊配置的區別

1. .ssh/目錄在ssh-server/ssh-client端都沒有權限要求,所以默認的755即可。

2. 上述配置均不需使用root權限,也不需要配置/etc/ssh/sshd_config(默認即可),更不需要重啟ssh服務器。

最後,希望對大家有用哈。

Copyright © Linux教程網 All Rights Reserved