ssh是什麼?
允許實現對遠程系統經驗證地加密安全訪問。
ssh的服務登錄驗證方式:
用戶/口令
基於密鑰
基於用戶和口令登錄驗證:
1、客戶端發起ssh請求,服務器會把自己的公鑰發送給用戶
2、用戶會根據服務器發來的公鑰對密碼進行加密
3、加密後的信息回傳給服務器,服務器用自己的私鑰解密,如果密碼正確,則用戶登錄成功
基於密鑰的登錄方式:
1、首先在客戶端生成一對密鑰(ssh-keygen)
2、並將客戶端的公鑰ssh-copy-id 拷貝到服務端
3、當客戶端再次發送一個連接請求,包括ip、用戶名
4、服務端得到客戶端的請求後,會到authorized_keys中查找,如果有響應的IP和用戶,就會隨機生成一個字符串,例如:acdf
5、服務端將使用客戶端拷貝過來的公鑰進行加密,然後發送給客戶端
6、得到服務端發來的消息後,客戶端會使用私鑰進行解密,然後將解密後的字符串發送給服務端
7、服務端接受到客戶端發來的字符串後,跟之前的字符串進行對比,如果一致,就允許免密碼登錄
密鑰登錄的配置過程:
1、在客戶端生成密鑰對
ssh-keygen -t rsa [-P ''] [-f “~/.ssh/id_rsa"]
-P---對私鑰加密的口令,可以不指定
-f----指定文件 默認家目錄的.ssh下,隱藏文件
2、把公鑰文件傳輸至遠程服務器對應用戶的家目錄,這樣就可以直接登錄 無需輸入密碼。
注意:如果在生成密鑰對的時候-P 加入了密碼,ssh連接的時候 需要輸私鑰的密碼----------重設私鑰口令:ssh-keygen -p
如果你不想輸入密碼直接登錄,可以託管 1、ssh-agent bash
2、ssh-add -----------僅生效一次退出需重新設置
SecureCRT基於密鑰登錄
上面的配置過程是在linux之間基於key認證登錄,但是在實際生產過程中,我們都是用虛擬客戶端登錄,其實這些客戶端裏也有這個功能,下面我們介紹一下。
1、在SecureCRT菜單界面上找到Tools-->Create Public Key-->選擇加密方式,默認是RSA-->輸入加密密碼-->選擇加密長度,默認是2048-->生成後選擇保存方式爲OpenSSH Key format(new),選擇保存路徑。
2、生成公鑰文件後通過rz上傳至服務器
3、把公鑰文件追加到.ssh/authorized_keys文件中:cat Identity.pu >> .ssh/authorized_keys
注意:1、如果生成過程中最後一步選擇的是Standard Public Key and VanDyke Private Key format,需要執行下面這條命令進行轉化
ssh-keygen-i-f Identity.pub >> .ssh/authorized_keys
2、爲了保證密鑰的安全性,保證權限必須爲600
4、現在可以使用SecureCRT,在ssh2選項裏去只勾選Publickey,雙擊就可以直接登錄了。
5、基於xshell前段時間被曝出有漏洞,這裏推薦大家使用SecureCRT,xshell的實現方式基本與CRT相似。