Linux 遠程管理及sshd服務驗證知識點詳解
一、SSH遠程管理
SSH定義
- SSH(Secure Shell)是一種安全通道協議,主要用來實現字符界面的遠程登錄、遠程復制等功能。
- SSH協議對通信雙方的數據傳輸進行瞭加密處理,其中包括用戶登錄時輸入的用戶口令。因此SSH協議具有很好的安全性。
SSH優點
- 數據傳輸是加密的,可以防止信息泄漏
- 數據傳輸是壓縮的,可以提高傳輸速度
SSH配置文件
- sshd 服務的默認配置文件是/etc/ssh/sshd_config
- ssh_config和sshd_config都是ssh服務器的配置文件
二者區別在於ssh_config是針對客戶端的配置文件,sshd_config則是針對服務端的配置文件。
SSH客戶端與與服務端
- SSH客戶端:Putty、Xshell、CRT
- SSH服務端:OpenSSH
- OpenSSH 是實現 SSH 協議的開源軟件項目,適用於各種 UNIX、Linux 操作系統。
CentOS 7系統默認已安裝openssh相關軟件包,並已將 sshd 服務添加為開機自啟動。
二、配置OpenSSH服務端
1、shd_config配置文件的常用選項設置
vim /etc/ssh/sshd_config Port 22 #監聽端口為22 ListenAddress 0.0.0.0 #監聽地址為任意網段,也可以指定OpenSSH服務器的具體IP LoginGraceTime 2m #登錄驗證時間為2分鐘 PermitRootLogin no #禁止root用戶登錄 MaxAuthTries 6 #最大重試次數為 6 PermitEmptyPasswords no #禁止空密碼用戶登錄 UseDNS no #禁用 DNS 反向解析,以提高服務器的響應速度 #隻允許zhangsan、lisi、wangwu用戶登錄,且其中wangwu用戶僅能夠從IP地址為61.23.24.25 的主機遠程登錄 AllowUsers zhangsan lisi [email protected] #多個用戶以空格分隔 #禁止某些用戶登錄,用法於AllowUsers 類似(註意不要同時使用) DenyUsers zhangsan
2、Allowusers與Denyusers
Allowusers…… #僅允許某某用戶登陸 Denyusers …… #禁止某些用戶登錄,用法於AllowUsers 類似(註意不要同時使用)
3、遠程復制
scp [email protected]:/etc/passwd /root/passwd10.txt
4、sftp安全FTP
由於使用瞭加密/解密技術,所以傳輸效率比普通的FTP要低,但安全性更高。操作語法sftp與ftp幾乎一樣。
sftp [email protected] sftp> ls sftp> get 文件名 #下載文件到ftp目錄 sftp> put 文件名 #上傳文件到ftp目錄 sftp> quit #退出
三、sshd服務支持驗證的方式
密碼驗證
對服務器中本地系統用戶的登錄名稱、密碼進行驗證。簡便,但可能會被暴力破解,暴力破解可看之前博客有詳細描述系統弱口令檢測
密鑰對驗證
要求提供相匹配的密鑰信息才能通過驗證。通常先在客戶端中創建一對密鑰文件(公鑰、私鑰),然後將公鑰文件放到服務器中的指定位置。遠程登錄時,系統將使用公鑰、私鑰進行加密/解密關聯驗證。能增強安全性,且可以免交互登錄。
當密碼驗證、密鑰對驗證都啟用時,服務器將優先使用密鑰對驗證。可根據實際情況設置驗證方式。
vim /etc/ssh/sshd_config #編輯服務端主配置文件 PasswordAuthentication yes #啟用密碼驗證 PubkeyAuthentication yes #啟用密鑰對驗證 AuthorizedKeysFile .ssh/authorized_keys #指定公鑰庫文件
在客戶端創建密鑰對
通過ssh-keygen工具為當前用戶創建密鑰對文件。可用的加密算法為RSA、ECDSA或DSA等(ssh-keygen命令的“-t”選項用於指定算法類型)。
useradd admin echo "123123" | passwd --stdin admin su - admin ssh-keygen -t ecdsa Generating public/private ecdsa key pair. Enter file in which to save the key (/home/admin/.ssh/id_ecdsa): #指定私鑰位置,直接回車使用默認位置 Created directory '/home/admin/.ssh'. #生成的私鑰、公鑰文件默認存放在宿主目錄中的隱藏目錄.ssh/下 Enter passphrase (empty for no passphrase): #設置私鑰的密碼 Enter same passphrase again: #確認輸入 ls -l .ssh/id_ecdsa*#id_ecdsa是私鑰文件,權限默認為600;id_ecdsa.pub是公鑰文件,用來提供給 SSH 服務器
在服務器的/home/zhangsan/.ssh/目錄中導入公鑰文本
cd ~/.ssh/ ssh-copy-id -i id_ecdsa.pub [email protected]
在客戶端使用密鑰對驗證
ssh [email protected] [email protected]'s password: #輸入私鑰的密碼
在客戶機設置ssh代理功能,實現免交互登錄
ssh-agent bash ssh-add Enter passphrase for /home/admin/.ssh/id_ecdsa: #輸入私鑰的密碼 ssh [email protected]
*補充
scp ~/.ssh/id_ecdsa.pub [email protected]:/opt #將本機~/.ssh目錄下的公鑰上傳到服務器的/opt目錄裡 mkdir /home/zhangsan/.ssh/ #在服務器/home/zhangsan/目錄下創建一個.ssh目錄 cat /opt/id_ecdsa.pub >> /home/zhangsan/.ssh/authorized_keys #在服務器將/opt目錄下的公鑰文件追加到/home/zhangsan/.ssh/目錄中的authorzed_keys文件中 cat /home/zhangsan/.ssh/authorized_keys #在服務器查看/home/zhangsan/.ssh/authorized_keys文件
到此這篇關於Linux 遠程管理及sshd服務驗證知識點詳解的文章就介紹到這瞭,更多相關Linux 遠程管理及sshd服務驗證內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 教你如何用cmd快速登錄服務器
- Linux下搭建SFTP服務器的命令詳解
- SSH證書登錄方法詳細教程
- VSCode如何遠程連接Linux教程(密鑰的使用)
- vscode通過Remote SSH遠程連接及離線配置的方法