SSH的英文全稱是SecureShell。
SSH是一種協議,有版本1和版本2。版本1很不安全。配置文件在/etc/ssh/中,其中ssh_config是客戶端的配置文件,sshd_config是服務器端的配置文件。
ssh還能實現端口轉發的功能。ssh可以遠程轉發郵件,但是遠程服務器必須有一個用戶賬號。
它的安全不僅體現在是加密通信的,而且可以實現認證。有主機認證和用戶認證。用戶認證分爲三類:基於口令的認證;基於密鑰的認證;基於主機的認證(十分不安全,所以很少用)。
如何實現主機認證呢?當雙方試圖建立通信時,尤其是客戶端連接服務端時,服務端用主機私鑰加密去加密一段數據,並把數據發送給客戶端,此時,客戶端試圖從自己的某個文件中找到和這個私鑰匹配的公鑰去解密這段數據。
用戶的公鑰都放在~/.ssh/known_hosts,
~/.ssh/unknown_hosts
ssh的配置文件:
首先看服務端的配置文件:其中加#號的表示是默認值。#號後不帶空格的表示可啓用的選項,帶空格的表示是純註釋。會話密鑰每隔一段時間會更換(默認是1小時)。
/etc/ssh/sshd_config
#PermitRootLogin yes更換爲no。不允許以root身份登陸。
#StrictModes yes 檢查用戶家目錄權限,如果家目錄權限不是全局可寫,就不能登陸
#MaxAuthTries 6 密碼錯誤最大重複次數