SSH: (Secure Shell)的縮寫,是建立在應用層和傳輸層基礎上的安全協議,SSH是目前 較為可靠的專為遠程登錄會話和其他網路服務提供安全性的協議,數據在使用ssh方式傳輸的時候是加密的,即使別人截獲也不知道是什麼數據;為客戶端提供安全的Shell環境,用於遠程管理,預設埠:TCP 22 ...
SSH: (Secure Shell)的縮寫,是建立在應用層和傳輸層基礎上的安全協議,SSH是目前 較為可靠的專為遠程登錄會話和其他網路服務提供安全性的協議,數據在使用ssh方式傳輸的時候是加密的,即使別人截獲也不知道是什麼數據;為客戶端提供安全的Shell環境,用於遠程管理,預設埠:TCP 22 telnet 23
SSH基於公鑰加密(非對稱加密)技術:
數據加密傳輸;
客戶端和伺服器的身份驗證;
相關軟體包:
配置文件參考:
相關登錄信息:
命令:可以用-p選項指定埠號登陸:
ssh 192.168.1.108 -p 222
1》安裝相關軟體,預設已經安裝;
2》修改配置文件,用xshell軟體遠程登錄:
1>密碼認證(預設使用,認證的用戶需要本地存在,/etc/passwd /etc/shadow),
簡單配置:
2>密鑰認證:
上述文件存放本地主機當前用戶ssh連接過的伺服器的公鑰,存放在當前用戶的家目錄下的.ssh目錄里,此文件不需要自己創建,ssh連接之後就會自動創建;
============= 公鑰認證客戶端具體流程(剛剛開始):
==========================SSH公鑰認證流程:
實例分析:
1》客戶端用普通用戶創建密鑰對:
註意:公鑰和私鑰,還有ssh配置文件的許可權絕對不可以亂動,都是為600:
2》將用戶的公鑰上傳到伺服器的root用戶家目錄下.ssh/authorized_keys:
方法:
3》在客戶端進行驗證,註意要用普通用戶來登錄伺服器的root用戶許可權:
==============在xshell上使用密鑰認證登錄:
密鑰的功能可分為兩種:
數據加密;能保證所發送數據的機密性;
數字簽名:能保證數據完整性,身份驗證和不可抵賴;
===============數字簽名原理:
===============密鑰的額外功能使用:
1》定時可以在客戶機上遠程執行伺服器上的腳本,而不用登錄伺服器?
答:在客戶機上寫一個腳本觸發伺服器上的腳本,然後在客戶機上執行計劃任務就可以了,客戶機與伺服器之間必須配置密鑰認證;
2》通過SSH可以運行伺服器中的視窗程式:
ssh -X [email protected]
然後運行相關視窗程式命令,不過客戶端必須在圖形界面下的虛擬終端上運行命令;
===================問題:
1>scp遠程複製文件和ssh遠程登錄都可以使用-p來指定埠號;
2>ssh-copy-id 只能使用22號埠;
3>ssh的安全性問題?你有哪些措施?
密鑰認證;
不允許root登錄;
只允許某些固定的IP地址ssh過來(使用TCPWrappers中的hosts.allow,hosts.deny);
使用chkconfig --list 命令可以查看有哪些獨立進程和超級進程
4>SSH日誌存放地方?
/var/log/messages
/var/log/secure
5>密鑰文件的許可權性問題?
不可以隨便改動,必須保持600許可權,know_hosts文件也一樣;
6>SSH連接比較慢?
將伺服器中的配置文件sshd_config文件中的UseDNS選項註釋去掉,並no,不讓SSH伺服器去進行DNS解析,這樣可以節省大量時間;
7>SSH遠程登錄執行腳本,如果突然網路斷開了,腳本是否會繼續執行?
腳本會繼續執行,當網路再次連接上後,如果客戶端是在命令行上SSH連接的,那麼客戶端會自動再次連接上伺服器;
8>xshell中如何使用密鑰連接伺服器?
Linux伺服器首先生成一對密鑰;將私鑰發送給Windows客戶端,並且將用公鑰生成authorized_keys 文件;然後就可以在xshell端用密鑰認證方式登錄了;
9>批量運維問題?
使用要求:客戶端與伺服器之間要建立單向信任關係,密鑰認證:
pssh ------>parallel 並行 --->批量執行命令
pscp------->批量傳輸文件