securecrt免密碼登錄


一、前言

1. 環境

  • 客戶端系統:win7
  • securecrt版本:6.0.2
  • 服務端系統:centos6.5
  • 服務端ssh實現:openssh

2. 關於認證方式

我們知道ssh一般都會提供多種客戶端認證方式,其中最常用的是密碼和公鑰認證方式,本篇主要討論公鑰認證方式。有關客戶端認證的過程與原理,可以看另一篇文章:ssh的發展歷程與基本原理

 

二、使用公鑰認證登陸的優點

1、公鑰認證允許使用空密碼,省去每次登錄都需要輸入密碼的麻煩

2、多用戶管理服務器時,可以通過多個公鑰登錄同一用戶下,可以避免因為密碼認證被用戶都需要密碼,導致的密碼容易泄密的危險。並且使用passwd修改密碼,也不會影響到其他用戶的登錄。

3、做空密碼的公鑰認證,為運維自動化提供了便捷方法。

 

三、生成公鑰和私鑰

以下是使用securecrt生成公鑰和私鑰的主要步驟,不用修改的界面就不放出來了,直接點下一步就是了。

1

選擇公鑰的類型為RSA:

2

因為我們不想輸入通行密碼,所以密碼直接留空,注釋框寫上自己想標注的內容就行了:

3

到了這一步,就是生成公鑰的時候了,注意框出來的內容,securecrt在生成公鑰的時候會根據鼠標的移動數據作為隨機的因素去生成,如果你到了這個界面切到別的地方去了,可能回來的時候發現進度條還沒動過。

5

key的格式選OpenSSH,完成。

6

生成有兩個文件,一個公鑰文件(Identity.pub)一個私鑰文件(Identity),需要把Identity.pub的內容追加到服務器的文件~/.ssh/authroized_keys中,如果.ssh目錄不存在,就創建一個:

mkdir ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authroized_keys
chmod 600 ~/.ssh/authroized_keys

注意:.ssh 目錄的權限必須是0700,.ssh/authorized_keys 文件權限必須是0600,否則公鑰認證不會生效。

 

四、服務端設置

我們想達成的目的有:

  • 讓客戶端免密登陸
  • 禁止客戶端密碼登陸
  • 修改默認端口,避免外部攻擊

1. 修改配置文件/etc/ssh/sshd_config

Port 1357
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication no

2. 重啟sshd服務

service sshd restart

3. 如果有開防火牆,還需要修改防火牆配置

打開防火牆配置文件/etc/sysconfig/iptables,找到原來22端口的配置:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

把22改成你想要改成的端口,這里是1357,修改完保存配置並重啟防火牆。

service iptables restart

關於iptables的原理和基本用法,有興趣可以看看另外一篇:深入淺出iptables

 

五、登陸服務器

建立連接,把公鑰選項提前,並去掉密碼登陸選項,然后點開公鑰的屬性選項。

建立連接

選擇使用會話公鑰設置,然后選擇自己的私鑰文件,ok。

選擇密鑰文件

如果是第一次連接,會提示你去辨別是否接受這個新的host key,選接受並保存。

第一次鏈接

然后就可以直接登陸服務器了。

 

六、總結及注意

本文主要簡述從securecrt生成公鑰/密鑰到免密登陸服務器的過程,總體來說比較簡單。

不過有的細節不注意就可能導致失敗,譬如:

  • 客戶端和服務端的ssh版本對不上
  • 生成key的類型不對
  • 服務端.ssh目錄或者授權文件的權限不對
  • 服務器sshd配置修改錯誤或者修改完沒有重啟sshd服務
  • 防火牆配置沒有修改,或者沒有重啟防火牆

 

七、參考

1. ssh 公鑰認證方式登錄

2. ssh配置公鑰私鑰登錄SecureCRT

(完)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM