1. 程式人生 > >SSH服務

SSH服務

運行 author 網絡服務 分析 alt 界面 app 程序 ges

  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------->批量傳輸文件

SSH服務