linux net通訊 基於密鑰

配置SSHD服務

  SSH(Secure Shell)是一種可以以安全的方式提供遠程登陸的協議,也是目前遠程管理 Linux 系統的首選方式。在此以前,通常使用 FTP 或 Telnet 來進行遠程登陸。可是由於它們 以明文的形式在網絡中傳輸帳戶密碼和數據信息,所以很不安全,很容易受到黑客發起的中 間人攻擊,這輕則篡改傳輸的數據信息,重則直接抓取服務器的帳戶密碼。算法

  想要使用 SSH 協議來遠程管理 Linux 系統,則須要部署配置 sshd 服務程序。sshd 是基於 SSH 協議開發的一款遠程管理服務程序,不只使用起來方便快捷,並且可以提供兩種安全驗證的方法:vim

  1. 基於口令的驗證-------用帳號和密碼登陸
  2. 基於密鑰的驗證-------須要在本地生成密鑰對,而後把密鑰對中的公鑰上傳至服務器,並與服務器中的公鑰進行比較;

超哥以前說過「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
相關文章
相關標籤/搜索