ssh遠程登陸配置、公私鑰密碼ssh體系構建

一、遠程登陸服務openssh
openssh服務器提供ssh遠程加密登陸,常用於公網,加密數據傳輸過程中安全,默認裝機最小化時候也是裝好的,sshd服務配置文件是/etc/ssh/sshd_conf,ssh協議的端口號默認是22,以防別人發起端口***,現網中正常都是換1024以上的端口號,1024以內一般都有使用需求
talent:遠程登陸 默認端口號23,明文傳輸常用於局域網
配置文件/etc/ssh/sshd_config功能詳解
二、用戶登陸控制

port 22 // 端口22
listenadderss // 服務器所有網卡可以監聽,那麼只要連服務器任何一塊網卡都可以去享受這個ssh服務

LoginGrace Time // 登陸驗證時間 2min
PermitRootLogin NO //不允許root登陸——》現網中都是以普通用戶身份登陸,輸入用戶名密碼切換到系統安全shell環境,su - 切換成root,這是安全的意識
maxauthtries //最大重試次數
當允許或者禁用某些用戶登錄時候 allowusers denyusers,不要同時出現,要麼允許誰,要麼禁止誰
Allowusers tom jack lucu @192.168.10.40 // 允許這三個人登陸10.40這個服務器 這個不是配置文件裏面默認的選項,需要手動添加
所以會有這麼個需求,root用戶不能遠程登陸,普通用戶登陸進去su - root這麼個說法,就是通過這兩條語句實現
PermitRootLogin NO
Allowusers tom jack lucu @192.168.10.40
注意這個allow只允許,deny很強大,他優先級優先只允許誰登陸,後面把PermitRootLogin NO改成yes ,要把這個allow去掉或者裏面加上root,容易出錯的地方
三、登陸驗證方式
首先來了解一下,加密驗證的三種方式
對稱加密:加密方和解密方密碼一致驗證,常見的就是用戶名的密碼驗證,服務器上記錄了這個用戶名的密碼,你輸入了這個用戶名的密碼,一致,驗證通過。優勢:簡便 。劣勢:從客戶端來看正在連接的服務器容易被假冒,就是你拿到了tom密碼,就一定說明你就是tom這個人嗎,從服務器來看,
此種加密容易遭到密碼的窮舉暴力破解
非對稱加密:加密密碼和解密密碼不一樣,簡稱爲祕鑰對,公私鑰。加密一個文件出現一對密碼,一個公鑰,一個私鑰,私鑰加密,公鑰解密 通常先在客戶端創建一對祕鑰文件產生關聯識別的公私鑰(通過一定算法認識彼此),私鑰客戶端存着,公鑰文件放在服務器指定位置,客戶端遠程登陸服務器時,系統看到私鑰,會比對公鑰庫,進行公私鑰關聯驗證,如過有通過,沒有不通過,所以服務器就有公鑰文件庫,每個客戶端都有一把私鑰,客戶端來連接我服務器,好,出示私鑰,我來比對公鑰庫,有沒有公鑰來和你進行匹配驗證通過,有通過,沒有走人,所以你看到服務器公鑰上沒有用,無法用公鑰推算私鑰,這和公私鑰產生的數學算法有關,得有私鑰匹配纔行。
ssh遠程登陸配置、公私鑰密碼ssh體系構建
單向加密:文件加密後不解密,多用於驗證,哈希值加密,密文用來驗證文件完整性,舉個例子,網上有個軟件包,哈希密文是一個值,你通過不管是網絡還是什麼渠道下載到自己電腦裏,如果軟件包的哈希值還是一樣,那麼就說明軟件包很純淨,我不需要解密,只需要對比,這就是單向加密。
總結:在現網中,對於安全性要求較高服務器,建議禁止用戶名密碼登錄方式,採用祕鑰對,如果配置文件中兩種方式都啓用,默認祕鑰對優先
passwdauthentication yes // 啓用密碼驗證
pubkeyauthentication yes // 啓用祕鑰對驗證
AuthorizedKeysFile .ssh/authorized_keys //指定公鑰文件庫,收集各個客戶端的公鑰存放在一起
四、客戶端登錄方式
如果你的客戶端是微軟,你可以使用微軟上的xshell,putty等第三方軟件遠程登陸ssh服務器,這是我們比較常見的,在現網中也可以使用一臺linux登陸另一臺linux,這都是沒有問題的,openssh客戶端由openssh-clients軟件包提供(默認裝好),其中包括ssh遠程登陸命令,scp,sftp遠程複製和文件傳輸命令等,實際上,任何支持ssh協議的客戶端都可以域openssh服務器進行通信,微軟上通過第三方軟件進行,比如xshell,putty。
4.1、用戶名密碼登錄
4.1.1、ssh遠程登陸
ssh 用戶名 @服務器 -p 指定端口
ssh [email protected] -p 1098
ssh遠程登陸配置、公私鑰密碼ssh體系構建
服務器不是有用戶名密碼呀tom 123 ,輸入ssh [email protected]就是相當於你坐在這臺10.30服務器旁邊一樣,你擁有了10.30服務器的一切什麼bash環境啥的
ssh遠程登陸配置、公私鑰密碼ssh體系構建

4.1.2、scp遠程複製
ssh可以遠程登陸,但是你就是對方了,登陸如果對目標服務器進行維護修改操作還行,可是我怎麼把上面文件傳輸到我真實的電腦上呢,那就用到scp命令,格式需要注意,scp是在客戶機自己身上敲的代碼不是服務器
通過scp命令利用ssh的安全連接與遠程主機相互複製文件,相當於登陸其實,只不過可以遠程登陸服務器把上面文件複製到自己真實電腦上
你可以從服務器下載文件到客戶機,也可以從客戶機上傳文件到服務器
下載格式:scp 用戶名@目標服務器 :絕對路徑服務器上文件 絕對路徑本機文件(重命名)
scp [email protected]:/etc/passwd /root/pwd.txt
用root身份登陸10.20這個服務器 去複製passwd文件到自己家目錄下並且重命名爲pwd.txt
ssh遠程登陸配置、公私鑰密碼ssh體系構建

上傳格式
scp -r /etc/passwd [email protected]: /opt
把自己本機文件passwd 以root身份登陸到對方服務器並且複製到對方服務器opt目錄下
ssh遠程登陸配置、公私鑰密碼ssh體系構建
ssh遠程登陸配置、公私鑰密碼ssh體系構建
4.1.3、sftp 安全 FTP
通過 sftp 命令可以利用 SSH 安全連接與遠程主機上傳、下載文件,採用了與 FTP 類似的登錄過程和交互式環境,便於目錄資源管理,實現文件上傳下載的便捷高效性
sftp [email protected] //sftp登陸10.30這個服務器
10.40根下有個kaka空文件 10.30根下有個lala空文件,10.30是遠程連接主機,10.30是本地
ssh遠程登陸配置、公私鑰密碼ssh體系構建
put /kaka / 把本地根目錄下kaka文件上傳到遠程主機根目錄下
get /lala / 把遠程主機根下lala文件下載到本機根目錄下
五、構建密鑰對驗證的ssh體系
作用:每一個用戶公私鑰匹配才能登陸,遠程登陸中提供了比用戶名密碼更好的安全性,無法用窮舉法暴力破解
注意:密鑰對要以用戶的身份生成,我們驗證的用戶登陸系統的匹配機制,非對稱加密密鑰對和對稱加密的密碼
步驟一:ssh客戶端以zhangsan身份創建密鑰對
步驟二:將zhangsang的公鑰上傳到服務器端
步驟三:將zhangsang的公鑰給lisi的保管,這裏需要理解一下,說白了就是一一對應法則,公私鑰要以與用戶爲媒介,客戶端有zhangsan這個用戶,拿着自己的私鑰,把公鑰給了服務器上的信的過的lisi用戶保管,當zhangsan拿着自己私鑰要登錄系統時候,服務器上lisi拿着zhangsan的給的公鑰對比一下,過了zhangsan就驗證通過lisi登上服務器,你登錄服務器的權限是服務器給lisi的權限,不對就登不上去,公私鑰匹配,怎麼匹配,客戶機和服務器上各自保管祕鑰的用戶拿着跑過來匹配,私鑰配公鑰,zhangsan配lisi。
步驟四:祕鑰對驗證登陸

ssh遠程登陸配置、公私鑰密碼ssh體系構建
1.在客戶端用zhangsan創建密鑰對
在 Linux 客戶端中,通過 ssh-keygen 工具爲當前用戶創建密鑰對文件。可用的加密算法爲 ECDSA 或 DSA(ssh-keygen 命令的“-t”選項用於指定算法類型)。例如,以 zhangsan用戶登錄客戶端,並生成基於 ECDSA 算法的 SSH 密鑰對(公鑰、私鑰)文件,操作如下所示。
ssh遠程登陸配置、公私鑰密碼ssh體系構建

ssh遠程登陸配置、公私鑰密碼ssh體系構建
ssh遠程登陸配置、公私鑰密碼ssh體系構建
ssh遠程登陸配置、公私鑰密碼ssh體系構建
ssh遠程登陸配置、公私鑰密碼ssh體系構建
ssh遠程登陸配置、公私鑰密碼ssh體系構建
2、將公鑰文件上傳至服務器
將上一步生成的公鑰文件上傳至服務器,並部署到服務器端用戶的公鑰數據庫中。上傳公鑰文件時可以選擇 SCP、FTP、Samba、HTTP 甚至發送 E-mail 等任何方式。例如,可以通過 SCP 方式將文件上傳至服務器的/tmp 目錄下。
ssh遠程登陸配置、公私鑰密碼ssh體系構建
3.在服務器中導入公鑰文本到lisi中
在服務器中,目標用戶(指用來遠程登錄的賬號 lisi)的公鑰數據庫位於~/.ssh 目錄,默認的文件名是“authorized_keys”。如果目錄不存在,需要手動創建。當獲得客戶端發送過來的公鑰文件以後,可以通過重定向將公鑰文本內容追加到目標用戶的公鑰數據庫
ssh遠程登陸配置、公私鑰密碼ssh體系構建

4.在客戶端使用密鑰對驗證
當私鑰文件(客戶端)、公鑰文件(服務器)均部署到位以後,就可以在客戶端中進行測試了。首先確認客戶端中當前的用戶爲 zhangsan,然後通過 ssh 命令以服務器端用戶 lisi的身份進行遠程登錄。如果密鑰對驗證方式配置成功,則在客戶端將會要求輸入私鑰短語,以便調用私鑰文件進行匹配(若未設置私鑰短語,則直接登入目標服務器)
ssh遠程登陸配置、公私鑰密碼ssh體系構建
5、把公鑰給寫的權限,改公鑰內容,看能否登錄上
ssh遠程登陸配置、公私鑰密碼ssh體系構建
ssh遠程登陸配置、公私鑰密碼ssh體系構建
我們去服務器把密碼登錄關了
ssh遠程登陸配置、公私鑰密碼ssh體系構建
ssh遠程登陸配置、公私鑰密碼ssh體系構建

ssh遠程登陸配置、公私鑰密碼ssh體系構建

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章