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!

推薦閱讀: