SSH秘钥认证
文章目錄
前言
為什么用密鑰認證
秘鑰認證流程
秘鑰生成及使用
a) 生成秘鑰
b) 分發秘鑰
c) 登陸測試
總結
前言
之前我們討論了ssh的基礎入門及配置文件,如果你還沒有探究過ssh的基礎知識,請點擊鏈接:
【Linux】循序漸進學運維-服務篇-ssh服務入門
【Linux】循序漸進學運維-服務篇-ssh配置文件詳解
今天我們著重來聊聊關于秘鑰認證那點事。
為什么用密鑰認證
遠程登錄每次都輸入用戶名和密碼,一個是非常麻煩,再一個也不是特別的安全,需要不定期修改密碼。
一般在公司里,我們都是一周修改一次密碼;當然也有公司幾年不修改一次密碼的。我從上家公司離職兩年后,有一次給學生演示,我登錄了一下居然還能登陸,這心得多大。當然咱們恪守本份,不去給他們搞破壞,但難保有一天員工離職時候鬧得不愉快,登錄上去刪根報復的。
秘鑰認證流程
公鑰登錄是為了解決每次登錄服務器都要輸入密碼的問題,流行使用RSA加密方案,主要流程包含:
? 1、客戶端生成RSA公鑰和私鑰
? 2、客戶端將自己的公鑰存放到服務器
? 3、客戶端請求連接服務器,服務器將一個隨機字符串發送給客戶端
? 4、客戶端根據自己的私鑰加密這個隨機字符串之后再發送給服務器
? 5、服務器接受到加密后的字符串之后用公鑰解密,如果正確就讓客戶端登錄,否則拒絕。這樣就不用使用密碼了。
這種方法要求用戶必須提供自己的公鑰。如果沒有現成的,可以直接用ssh-keygen生成一個
秘鑰生成及使用
1. 交互式創建及分發秘鑰
a) 生成秘鑰
一路回車帶閃電,私鑰的口令可以設置,也可以不設置。
運行結束后,會在 $HOME/.ssh/目錄下,會新生成兩個文件:id_rsa.pub和id_rsa。前者是你的公鑰,后者是你的私鑰。
b) 分發秘鑰
[root@gaosh-64 ~]# ssh-copy-id root@192.168.1.22 ### 分發秘鑰 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@192.168.1.22's password: ##輸入22這臺服務器的密碼Number of key(s) added: 1Now try logging into the machine, with: "ssh 'root@192.168.1.22'" and check to make sure that only the key(s) you wanted were added.c) 登陸測試
可以看到無需輸入密碼
2. 非交互式創建秘鑰
ssh-keygen -t dsa -f ~/.ssh/id_dsa -P “”
|參數|作用|
ssh-keygen |生成密鑰對命令
t|指定密鑰對的密碼加密類型(rsa,dsa兩種)
f|指定密鑰對文件的生成路徑包含文件名
P|指定密鑰對的密碼
總結
秘鑰認證在后面的學習中,尤其在寫shell腳本的時候,涉及到兩臺服務器的連同, 特別方便。在使用時,只要會交互式創建秘鑰即可。
本文轉自 ID: 互聯網老辛 更多內容關注公眾號《極客運維之家》,掃碼添加:
總結
- 上一篇: android 不压缩保存图片格式,An
- 下一篇: 【JAVA】延迟队列DelayQueue