遠程連接服務器簡介
????????遠程連接服務器通過文字或圖形接口方式來遠程登錄系統,讓你在遠程終端前登錄linux主機以取得可操作主機接口(shell),而登錄后的操作感覺就像是坐在系統前面一樣。
遠程連接服務器的功能?
????????分享主機的運算能力
遠程連接服務器的類型
(以登錄的連接界面來分類)
文字接口?
????????明文傳輸:Telnet、RSH等,目前非常少用
????????加密傳輸:SSH為主,已經取代明文傳輸
????????圖形接口:XDMCP、VNC、XRDP等
文字接口連接服務器
????????SSH(Secure Shell Protocol,安全的殼程序協議)可以通過數據包加密技術將等待傳輸的數據包加密后再傳輸到網絡上。ssh協議本身提供兩個服務器功能:一個是類似telnet的遠程連接使用shell的服務器;另一個就是類似ftp服務的sftp-server,提供更安全的ftp服務。
SSH協議
概念:SSH(Secure Shell),安全外殼協議,是一種建立在應用層基礎上的安全協議,通過對密碼進行加密傳輸驗證,可以在不安全的網絡中對網絡服務提供安全地傳輸環境,實現SSH客戶端和SSH服務器的連接,所以SSH是基于客戶端-服務器模式。
功能作用
????????通過使用SSH,可以把所有傳輸的數據進行加密,這樣“中間人”這種攻擊方式就不可能實現,而且也能夠防止DNS欺騙和IP欺騙。還有一個好處就是,傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以替代Telnet,又可以為FTP、Pop,甚至為PPP提供和一個安全的“通道”。
服務組成
????????SSH服務由服務端軟件OpenSSH和連接客戶端(SSH、SecureCRT、xshell等)組成,默認端口是22。SSH是一個守護進程,負責實時監聽客戶端請求,并進行處理。
協議握手流程
SSHD服務?
客戶端 ssh 命令的用法
對稱加密(密碼加密)
非對稱加密(密鑰加密)
SSHD服務
客戶端 ssh 命令參數
ssh 參數?遠程主機用戶?<ip|hostname>
????????-l #指定登陸用戶
# ssh?-l root 192.168.150.133
????????-i #指定私鑰
????????-X #開啟圖形
# ssh?-Xl root 192.168.150.133 ??????【鏈接開啟調用圖像】
????????-f #后臺運行
# ssh?-Xl root 192.168.150.133 firefox ?????【鏈接調用后臺firefox,當前終端進程會卡住】
# ssh?-Xl root 192.168.150.133?-f firefox ???【鏈接時候,終端進程不會卡死】
????????-o #指定連接參數
# ssh?-l root -o "StricHostKeyChecking=no" 192.168.150.133 ??????【檢測的時候輸入yes】
????????-t #指定連接跳板
# ssh -l root 192.168.150.1 -t ssh -l root 192.168.150.133 firefox
sshd服務的安全優化
非對稱加密優化
1~]# ssh-keygen?????????????????【生成密鑰】
注意:如果需要可以 ?# ssh-keygen -f /root/.ssh/id_rsa -P ""?非交互生成密鑰
上傳密鑰到服務器
# ssh-copy-id -i /root/.ssh/id_rsa lee@192.168.150.133?????【服務器上鎖】
# ls /home/lee/.ssh/???查看文件:
# vim /etc/ssh/sshd_config
# systemctl restart sshd
沒有密鑰,連接會被拒絕
2~]# ssh 192.168.150.133 -l lee ?運行結果:
# mkdir ?~/.ssh
1~]# scp /root/.ssh/id_rsa root@192.168.150.132:/root/.ssh/id_rsa??????【給與密鑰】
# ls ??~/.ssh???????????【查看文件】
# ssh 192.168.150.133 -l lee
常用安全優化參數
Port 2222 ????#設定端口為2222
1~]# setenforce 0???????????????????【設置selinux的狀態為警告】
# netstat -antlulpe | grep sshd??查看端口結果:
# vim /etc/ssh/sshd_config??????????????????????【改變端口】
# systemctl restart sshd
# firewall-cmd --permanent --add-port=2222/tcp??????【火墻放行】
# firewall-cmd --reload
2~]# ssh -l root 192.168.150.133??顯示結果:
# ssh -l root 192.168.150.133 -p 2222
PermitRootLogin yes|no???????#對超級用戶登陸允許或禁止
1~]# vim /etc/ssh/sshd_config???????????????????【yes是允許超級用戶登錄,no是禁止】
# systemctl restart sshd????????????????????【重啟才可以生效】
2~]# ssh -l root 192.168.150.133?????【輸入正確密碼也無法登錄】
PasswordAuthentication yes|no ?????#是否開啟原始密碼認證方式
1~]# vim /etc/ssh/sshd_config
# systemctl restart sshd
2~]# ssh -l root 192.168.150.133?-p 22 ?運行結果:
AllowUsers lee ?????#用戶白名單
1~]# useradd lee
# useradd timinglee
# echo lee | passwd --stdin lee
# echo lee | passwd --stdin timinglee
# vim /etc/ssh/sshd_config
# systemctl restart sshd
2~]# ssh 192.168.150.133 -l lee??運行結果:
# ssh 192.168.150.133 -l timinglee
DenyUsers lee ?????#用戶黑名單
1~]# vim /etc/ssh/sshd_config
# systemctl restart sshd
2~]# ssh 192.168.150.133 -l lee??運行結果:
# ssh 192.168.150.133 -l timinglee