天天看點

如何在SecureCRT上使用公鑰登陸Linux伺服器?

我以前一直使用密碼通過ssh協定登陸Linux伺服器,最近公司要求使用公鑰登陸。說是安全,好吧。那我們整一下。那到底使用公鑰登陸伺服器有什麼好處呢?其實我了解是這樣的:

當我們建立了公鑰和私鑰(這是一對,登陸時要使用私鑰解密公鑰)後,把公鑰給任何伺服器,登陸Linux伺服器時,隻要我們的私鑰不變,登陸任何伺服器都是不需要密碼的。而是使用公鑰私鑰進行身份驗證。安全的多!這裡也隐含了一個小細節,就是不要把你的私鑰給丢了。否則,你想想,幾百台伺服器上好不容易把你的公鑰配置好,而你的私鑰丢失,怎麼辦?私鑰是不能單獨生成的!

其實網上的文檔很多。各有千秋。估計是自己明白了,别人看起來比較費勁。這裡我整理一下,以備自己查閱:

配置過程分為兩大部分,SecureCRT部分和Linux伺服器部分。

SecureCRT部配置設定置

1、首先生成公鑰。

打開SecureCRT(我的版本為7.0,估計其他版本基本相同)程式,點選菜單欄的“工具”-》“建立公鑰”。按照步驟執行。其中一步比較重要就是選擇公鑰的格式。建議選擇“OpenSSH”,否則在伺服器端使用時需要轉換為OpenSSH各式。何必多次一舉呢。是以這裡必須選擇“OpenSSH”。如果選錯了。重新生成一次就可以了。

然後選擇公鑰私鑰存放的地方。預設Identity是私鑰,Identity.pub是公鑰。

2、把Identity.pub檔案上傳到你要登陸的Linux伺服器上。方法有很多,比如ssh(先不要配置為公鑰登陸),ftp等。具體操作自己搞定。上傳時選擇ASCII方式。

3、在SecureCRT建立伺服器連接配接。協定使用ssh。在“鑒權”方法中,取消勾選“密碼”。選擇“公鑰”,然後點選右邊的屬性按鈕,在對話框中。

如何在SecureCRT上使用公鑰登陸Linux伺服器?

使用全局公鑰設定:表示所有連接配接都使用該公鑰連接配接伺服器。

使用會話公鑰設定:可以分别為每個連接配接指定不同的公鑰。

下面的路徑就是指明私鑰的具體路徑。注意了,這裡要指明私鑰的路徑。

儲存連接配接就可以了。

Linux伺服器端配置

1、sshd_conf配置

主要修改如下幾個内容:

PermitRootLogin no # 預設為注釋,先配置為禁止root使用者登陸,允許root登陸太危險了。好幾次差點犯錯誤。切記切記!

RSAAuthentication yes #預設為注釋, 啟用 RSA 認證

AuthorizedKeysFile .ssh/authorized_keys # 驗證公鑰的存放路徑

PubkeyAuthentication yes # 預設為注釋,啟用公鑰認證

PasswordAuthentication no # 禁止密碼認證,預設是打開的。

保持後,重新啟動ssh服務。在不同的linux伺服器上,重新開機的方法不同。

RedHat,CentOS: service sshd restart      //redhat 7 的方法已經改了。

openbsd,freebsd: /etc/rc.d/sshd restart

2、重點部分:配置公鑰存放哪的問題。

要把第一部分上傳上來的公鑰放到使用者home目錄的.ssh/ 目錄下。這裡說明一下。如果你想使用test賬号登陸,就要把公鑰放到test賬戶的.ssh目錄下。你可以直接把Identity.pub改為authorized_keys. 當然也可還是用其他方法。

比如:cat Identity.pub >> authorized_keys

另外說明一下。.ssh目錄權限是700,authorized_keys檔案權限為644.

重點補充,如果還有其他人也想用自己的公鑰登陸伺服器,該如何操作呢? 正常操作應該為該使用者在伺服器上建立一個賬号,重新執行本次(Linux伺服器端配置,第2點)操作。當然,你也可以偷懶,把他的公鑰也放到test賬号的authorized_keys檔案中。但兩個公鑰的内容之間使用換行符隔開。這樣的方法還是不可取的。

最後,使用SecureCRT登陸linux伺服器。

這裡要注意,即使你使用公鑰登陸伺服器,當你連接配接的時候,還是要你輸入使用者名。為何呢?不是說公鑰驗證麼?其實,伺服器要知道用你的私鑰和哪個使用者的.ssh目錄下的authorized_keys檔案内容進行解密。不可能用你的私鑰和所有的使用者authorized_keys檔案進行比對測試。

但是也有例外,如果你在linux系統上使用公鑰登陸Linux伺服器,就不需要指明使用者。方法如下:

# ssh 172.16.24.222

為何呢?這時系統預設以為你登陸的遠端賬号就是你目前登陸的賬号。

如果你設定了公鑰密碼,連接配接時比如輸入。為了安全,這個密碼是必須要有的。在SecureCRT中,密碼被翻譯為:通行短語。呵呵。

補充一下,在linux系統上,如何建立公鑰和私鑰呢?

方法很簡單,執行ssh-keygen指令,按照提示就可以完成。完成後,自動會在目前使用者的home目錄,建立.ssh檔案夾。

伺服器端配置和上面的方法相同。