前幾天研究了下SSH2通信的加密與認證過程,針對publickey認證方式,服務器端將公鑰放入authorized_keys文件就可以了,但是交換機方面如何配置呢?So,今天主要說一下交換機是如何配置的。
在介紹之前提前提及一下後面會用到的幾個工具:
1、ssh-keygen:openssh中認證祕鑰生成、管理和裝換的一個工具。
詳情參見:http://man7.org/linux/man-pages/man1/ssh-keygen.1.html
2、egrep:相當於grep -E
grep詳情參見:https://www.runoob.com/linux/linux-comm-grep.html
好啦,進入正題,大致分爲兩方面進行:
第一方面:客戶端將公鑰轉換成16進制字符串
1. 爲客戶端生成祕鑰對,默認存放位置 ~/.ssh/
ssh-keygen -t rsa -b 1024 -f yourkeyname -C "備註"
2. 將公鑰轉換成爲16進制字符串形式
ssh-keygen -e -m pem -f 公鑰存放的絕對路徑 | egrep -v "BEGIN|END" | base64 -d | od -t x1 -An -w4 | tr 'a-f' 'A-F' | tr -d ' ' | fmt -w 48
注意:我一開始使用的自己的開發虛擬機,系統本身就很老,裏面的openssh版本太老,ssh-keygen好多參數用不了,後來使用OpenSSH_7.4版本則可以支持。
第二方面:交換機配置rsa認證(使用的華爲交換機:S5700-24TP-SI-AC)
1. 公鑰導入交換機,命名rsa
rsa peer-public-key rsa
public-key-code begin
粘貼16進制公鑰
public-key-code end
peer-public-key end
2. 創建aaa用戶sshtest,密碼hf123456,設置認證類型爲ssh
aaa
local-user sshtest password cipher hf123456 privilege level 15
local-user sshtest service-type ssh
quit
3. 添加ssh用戶及認證方式
ssh user sshtest authentication-type rsa
ssh user sshtest assign rsa-key rsa
ssh user sshtest service-type all
4. 配置vty界面支持的登錄協議 並 開啓服務
user-interface vty 0 4
authentication-mode aaa
protocol inbound ssh /* 這裏 ssh或all都可以 */
quit
stelnet server enable
sftp server enable
5. ok,大功告成,下面給他家貼一個我測試的客戶端連接成功圖!
結語:
以上就是大致的配置過程,從配置中可以看出,除了單獨的password和rsa方式外,還可以兩種方式結合進行認證,等有時間了再試一下其他幾種認證方式(#^.^#)!
最後結尾處貼出了我的調試信息結果圖,等整理下代碼,下次會把相關代碼發上來。
------ 謝謝您的閱讀,若文章內容有什麼問題,歡迎指出,大家共同進步!
參考連接:
1. https://blog.csdn.net/qq_27860819/article/details/81568121