1.聯機加密技術簡介:shell
公鑰:提供給遠程主機進行數據加密的行爲,也就是說,你們都能取得你的公鑰來將數據加密。安全
私鑰:遠程主機使用的你的公鑰加密的數據,在本地端可以使用私鑰來進行解密。因爲私鑰是這麼的重要,所以私鑰是不可以外流的,只能保存在本身的主機上。服務器
因爲每部主機都應該有本身的密鑰(主機的公鑰和本身的私鑰),且公鑰用來加密而私鑰用來解密,其中私鑰不可外流。但由於網絡聯機是雙向的,因此,每一個人應該都要有對方的公鑰纔對。網絡
2.目前ssh的版本有兩種,version1和version2,其中version2加上了聯機檢測機制,能夠避免聯機期間被插入惡意的***碼,所以比version1更加安全。ssh
3.ssh聯機行爲簡介ide
聯機步驟:ui
1) 服務器創建公鑰檔:每次啓動sshd服務時,該服務會主動去找/etc/ssh/ssh_host*的檔案,若系統剛剛安裝完成時,因爲沒有這些公鑰檔案,所以sshd會主動去計算出這些須要的公鑰檔案,同時也會計算出服務器本身須要的私有檔案。加密
2) 客戶端主動聯機的要求:若客戶端想要聯機到ssh服務器,則須要使用適當的客戶端程序來聯機,包括ssh、pietty等客戶端程序spa
3) 服務端傳送公鑰給客戶端:接收到客戶端的要求後,服務器便將第一個步驟取得的公鑰檔案傳送給客戶端使用(此時應是明碼傳送)。server
4) 客戶端記錄比對服務端的公鑰數據及隨機計算本身的公私鑰:若客戶端第一次鏈接到此服務器,則會將服務器的公鑰數據記錄到客戶端的用戶家目錄內的~/.ssh/known_hosts。如果已經記錄過該服務器的公鑰數據,則客戶端會去比對這次接收到的與以前的記錄是否有差別。若接受此公鑰數據,則開始計算客戶端本身的公私鑰數據。
5) 回傳客戶端的公鑰數據到服務器端:用戶將本身的公鑰傳送給服務器。此時服務器具備服務器的私鑰和客戶端的公鑰,而客戶端則是具備服務端的公鑰以及客戶端本身的私鑰,因爲服務器端和客戶端的密鑰系統(公鑰+私鑰)並不同,因此也被叫作非對稱式密鑰系統。
6) 開始雙向加密:服務器到客戶端,服務器傳送數據時,拿用戶的公鑰加密後送出,客戶端接收後,用本身的私鑰解密;客戶端到服務器端,客戶端傳送數據時,拿服務器的公鑰加密後送出,服務器接收後,用服務器的私鑰解密。
整個過程如圖所示:
由上可知,客戶端的密鑰是隨機運算產生於本次聯機當中的,因此你此次的聯機與下次的聯機的密鑰可能會不同。此外在客戶端的家目錄下(~/.ssh/known_hosts)會記錄曾經聯機過的主機的public key,用以確認咱們是連上正確的那部服務器。
4.產生新的服務端公鑰和私鑰的方法是:刪除/etc/ssh/ssh_host*文件,而後重啓sshd服務。
5.ssh提供shell和ssh-ftp server兩項服務。默認使用的端口都是22。
6.ssh [–f] [-o 參數項目] [ -p 非正規端口] [帳號@]IP [指令]:直接登入遠程主機的指令,參數,
1)-f:須要配合後面的指令,不登入遠程主機直接發送一個指令過去而已
2)-o:參數項目:主要的參數項目有,
ConnectTimeout=秒數:聯機等待的秒數,減小等待的時間
StrictHostKeyCheking=[yes|no|ask]:預設是ask,若讓public key主動加入known_hosts,則能夠設定爲no便可
3)-p:設定登陸的端口(在使用非默認端口時,有用)
4)[指令]:與-f結合,在不登入主機的前提下,向主機發送的指令,此種方式指令會在主機上運行,客戶端和服務器的連接已斷開,即不會出現客戶端卡頓的狀況,若不加f,則須要等指令執行完後,客戶端纔會響應。
5)當未指定帳號登陸時,會以當前帳號登陸主機。
7.遠程主機因爲系統重裝,或刪除/etc/ssh/ssh_host*文件等緣由形成服務端主機公鑰變化後,會形成客戶端沒法鏈接主機。解決方法是將~/.ssh/known_hosts文件中對應的行刪掉,而後從新鏈接。
8.sftp 用戶名@主機IP或域名:使用ssh的通道進行文件的上傳和下載。支持的指令有:
1)cd:切換目錄
2)ls:顯示目錄下的文件
3)mkdir:建立目錄
4)rmdir:刪除目錄
5)pwd:顯示目前的路徑
6)chgrp:修改檔案或目錄的羣組
7)chown:修改檔案或目錄的擁有者
8)chmod:修改檔案或目錄的權限
9)ln oldnamenewname:創建鏈接檔
10)rm Path:刪除檔案或目錄
11)renameoldname newname:更改檔案或目錄名稱
12)exit或bye或quit:離開遠程主機
13)針對本機的行爲都加上l(localhost的首字母),如lcd,lls等。
14)put [本機目錄或檔案] [遠程]:將檔案由本機上傳到遠程主機上,若是不指定遠程主機的目錄,將放在目前遠程主機的目錄下
15)get [遠程主機目錄或檔案] [本機]:將檔案由遠程主機下載下來,若不指定本機目錄,則檔案將放在目前本機所在的目錄當中。
9.scp [-pr] [-l 速率] file [帳號@ ]主機:目錄名:上傳;
scp [-pr] [-l 速率] [帳號@ ]主機:file 目錄名:下載;參數,
1)-p:保留本來檔案的權限數據
2)-r:複製來源爲目錄時,能夠複製整個目錄(包含子目錄)
3)-l:能夠限制傳輸速度,單位是Kbits/s,eg,-l 800表明100KBytes/s