SSH(Secure Shell)是一種可以以安全的方式提供遠程登陸的協議,也是目前遠程管理 Linux 系統的首選方式。在此以前,通常使用 FTP 或 Telnet 來進行遠程登陸。可是由於它們 以明文的形式在網絡中傳輸帳戶密碼和數據信息,所以很不安全,很容易受到黑客發起的中 間人攻擊,這輕則篡改傳輸的數據信息,重則直接抓取服務器的帳戶密碼。算法
想要使用 SSH 協議來遠程管理 Linux 系統,則須要部署配置 sshd 服務程序。sshd 是基於 SSH 協議開發的一款遠程管理服務程序,不只使用起來方便快捷,並且可以提供兩種安全驗證的方法:vim
超哥以前說過「Linux一切接文件」,也就是在Linux系統中修改服務程序,都得去修改它對應的配置文件,sshd程序的配置文件是/etc/ssh/sshd_config,檢查配置文件參數安全
grep -v '^#' /etc/ssh/sshd_config |grep -v '^$'
在RHEL7系統中,已經默認安裝啓動了SSHD服務,服務器
ssh 192.168.12.15
1.在第一次登陸的時候,系統會出現下面的提示信息:網絡
The authenticity of host 'ssh-server.example.com (12.18.429.21)' can't be established. RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d. Are you sure you want to continue connecting (yes/no)?
上面的信息說的是:沒法確認主機ssh-server.example.com(12.18.429.21)的真實性,不過知道它的公鑰指紋,是否繼續鏈接?ssh
輸入yes以後,那麼該host key會被加入到Client的known_hosts中,格式以下編碼
pyyuc.cn,123.206.16.61 ecdsa-sha2-nistp256....
終端提示以下:加密
Warning: Permanently added 'ssh-server.example.com,12.18.429.21' (RSA) to the list of known hosts. Password: (enter password)
提示該host已經被確認,並追加到文件known_hosts中,而後就要輸入密碼,以後的流程如圖rest
私鑰是server端獨有的,即便client的信息泄露,也沒有私鑰進行解密,保證數據安全。
加密是對信息進行編碼和解碼的技術,它經過必定的算法將本來能夠直接閱讀的銘文信息轉換成密文。密鑰就是密文的鑰匙,有私鑰和公鑰之分。code
在數據傳輸時,擔憂被他人監聽或截獲,就能夠在傳輸前先使用公鑰對數據加密處理,而後再傳送。這樣只有掌握私鑰的用戶才能解密這段數據,除此以外的其讓人即便截取了數據,也很難將其破解成明文。
1.在客戶端主機生成「祕鑰對」
ssh-keygen
2.第二步:吧客戶端主機中生成的公鑰文件傳送至遠程主機:
3.對服務器端進行設置,使其只能容許祕鑰登陸,拒絕口令登陸,而後重啓sshd服務
vim /etc/ssh/sshd_config PasswordAuthentication no
systemctl restart sshd
4.在客戶端便可免密登陸服務器了
ssh root@123.206.16.61