SSH原理與運用
阿新 • • 發佈:2018-04-22
ssh SSH 遠程主機 一、SSH介紹及特性
?
1、介紹
ssh命令是openssh套件中的客戶端連接工具,可以給予ssh加密協議實現安全的遠程登錄服務器。
具體的軟件實現: OpenSSH: ssh協議的開源實現,CentOS默認安裝 dropbear:另一個開源實現 SSH協議版本 v1: 基於CRC-32做MAC,不安全;man-in-middle v2:雙方主機協議選擇安全的MAC方式 基於DH算法做密鑰交換,基於RSA或DSA實現身份認證 兩種方式的用戶登錄認證: 基於password 基於key 端口號:22 ------------------------------------------------------------------------------------- ssh, 配置文件:/etc/ssh/ssh_config Host PATTERN StrictHostKeyChecking no 首次登錄不顯示檢查提示 格式:ssh [user@]host [COMMAND] ssh [-l user] host [COMMAND] -p port:遠程服務器監聽的端口 -b:指定連接的源IP -v:調試模式 -C:壓縮方式 -X: 支持x11轉發 -Y:支持信任x11轉發 -t: 強制偽tty分配 ssh -t remoteserver1 ssh remoteserver2
?
?
?
2、ssh服務三種登錄驗證
當用戶遠程連接ssh服務器時,會復制ssh服務器 /etc/ssh/ssh_host*key.pub(CentOS7默認是 ssh_host_ecdsa_key.pub)文件中的公鑰到客戶機的 ~./ssh/know_hosts中。下次連接時,會自動匹配相應私鑰 ,不能匹配,將拒絕連接
①基於用戶和口令登錄驗證
1.客戶端發起ssh請求,服務器會把自己的公鑰發送給用戶
2.用戶會根據服務器發來的公鑰對密碼進行加密
3.加密後的信息回傳給服務器,服務器用自己的私鑰解密, 如果密碼正確,則用戶登錄成功、
?
②基於密鑰的登錄方式 :
1.首先在客戶端生成一對密鑰(ssh-keygen)2.並將客戶端的公鑰ssh-copy-id 拷貝到服務端
3.當客戶端再次發送一個連接請求,包括ip、用戶名
4.服務端得到客戶端的請求後,會到authorized_keys中 查找,如果有響應的IP和用戶,就會隨機生成一個字符串 ,例如:acdf
5.服務端將使用客戶端拷貝過來的公鑰進行加密,然後發 送給客戶端
6.得到服務端發來的消息後,客戶端會使用私鑰進行解密 ,然後將解密後的字符串發送給服務端
7.服務端接受到客戶端發來的字符串後,跟之前的字符串進 行對比,如果一致,就允許免密碼登錄
?
③基於key認證 (1) 在客戶端生成密鑰對 ssh-keygen -t rsa [-P ‘‘] [-f “~/.ssh/id_rsa"] (2) 把公鑰文件傳輸至遠程服務器對應用戶的家目錄 ssh-copy-id [-i [identity_file]] [user@]host (3) 測試 (4) 在SecureCRT或Xshell實現基於key驗證 在SecureCRT工具—>創建公鑰—>生成Identity.pub文件 轉化為openssh兼容格式(適合SecureCRT,Xshell不需要轉化 格式),並復制到需登錄主機上相應文件authorized_keys中, 註意權限必須為600,在需登錄的ssh主機上執行: ssh-keygen -i -f Identity.pub >> .ssh/authorized_keys (5)重設私鑰口令: ssh-keygen –p (6)驗證代理(authentication agent)保密解密後的密鑰 這樣口令就只需要輸入一次 在GNOME中,代理被自動提供給root用戶 否則運行ssh-agent bash (7)鑰匙通過命令添加給代理 ssh-add
二、SSH轉發特點
? 
SSH原理與運用