Linux遠程訪問及控制方式
一、SSH遠程管理
1. SSH概述
SSH(Secure Shell)協(xié)議
- SSH是一種安全通道協(xié)議,主要用來實現(xiàn)字符界面的遠程登錄,遠程復(fù)制等功能。
- SSH協(xié)議對通信雙方的數(shù)據(jù)傳輸進行了加密處理,其中包括用戶登陸時輸入的口令。
OpenSSH
OpenSSH是實現(xiàn)SSH協(xié)議的開源軟件項目,適用于各種UNIX、Linux操作系統(tǒng)。
- 服務(wù)名稱:sshd
- 默認端口號:22
- 服務(wù)端主程序:/usr/sbin/sshd
- 服務(wù)端配置文件:/etc/ssh/sshd_config
- 客戶端配置文件:/etc/ssh/ssh_config
2.SSH的優(yōu)點
- SSH是較可靠,專為遠程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議
- 利用SSH協(xié)議可以有效防止遠程管理過程中的信息泄露問題
- SSH最初是Unix系統(tǒng)中的一個程序,后來又迅速擴展到其他操作平臺
- SSH在正確使用時可彌補網(wǎng)絡(luò)中的漏洞
- 數(shù)據(jù)傳輸?shù)倪^程是加密的,具有安全穩(wěn)定的特點
- 數(shù)據(jù)傳輸?shù)姆绞绞菈嚎s的,可以提高傳輸速度
3.配置OpenSSH客戶端
- shd_config配置文件的常用選項設(shè)置
vi /etc/ssh/sshd_config ...... Port 22 #監(jiān)聽端口為 22 ListenAddress 0.0.0.0 #監(jiān)聽地址為任意網(wǎng)段,也可以指定OpenSSH服務(wù)器的具體IP LoginGraceTime 2m #登錄驗證時間為 2 分鐘 PermitRootLogin no #禁止 root 用戶登錄 MaxAuthTries 6 #最大重試次數(shù)為 6 PermitEmptyPasswords no #禁止空密碼用戶登錄 UseDNS no #禁用 DNS 反向解析,以提高服務(wù)器的響應(yīng)速度 AllowUsers zhangsan lisi wangwu@61.23.24.25 #只允許zhangsan、lisi、wangwu用戶登錄,且其中wangwu用戶僅能夠從IP地址為61.23.24.25的主機遠程登錄 DenyUsers zhangsan #禁止某些用戶登錄,用法于AllowUsers類似(注意不要同時使用)
4.sshd服務(wù)支持的兩種驗證方式
密碼驗證
- 對服務(wù)器中本地系統(tǒng)用戶的登錄名稱、密碼進行驗證。
- 簡便,但可能會被暴力/破解
密鑰對驗證
- 有球提供相匹配的密鑰信息才能通過驗證。
- 通常先在客戶端中創(chuàng)建一對密鑰文件(公鑰、私鑰),然后將公鑰文件放到服務(wù)器中的指定位置。
- 遠程登錄時,系統(tǒng)將使用公鑰、私鑰進行加密\解密關(guān)聯(lián)驗證。
- 能夠增強安全性,且可以免交互登錄
5. 使用SSH客戶端程序
5.1 ssh - 遠程登錄
ssh "選項" "用戶名"@"ip\名稱" 例: ssh -p 1022 zhangsan@20.0.0.13 # "-p"指定端口號
5.2 scp - 遠程復(fù)制
- 下行復(fù)制:
scp "用戶名"@"ip/名稱":"被復(fù)制的遠程主機文件路徑" "復(fù)制到的本機文件路徑" 例:scp root@20.0.0.13:/etc/passwd /root/passwd10.txt
- 上行復(fù)制:
scp "被復(fù)制的本機文件路徑" "用戶名"@"ip\名稱":"復(fù)制到的遠程主機文件路徑" 例:scp /root/passwd root@20.0.0.13:/etc/passwd10.txt
- "-r"選項:遞歸復(fù)制目錄
- "-P"選項:指定端口號
6.配置密鑰對驗證
1.在客戶端使用ssh-keygen工具創(chuàng)建密鑰對文件(可用的加密算法為RSA、ECDSA、DSA等)
ssh-kegen -t rsa #"-t"選項:指定加密算法類型
[root@wzx ssh]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): #指定私鑰位置(回車默認) Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): #設(shè)置私鑰密碼(回車默認) Enter same passphrase again: #確認輸入(回車默認) Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:GqXMgBqBoMByselDeDiNraMgVv17fJrXb7FQ0NHGl5o root@wzx The key's randomart image is: +---[RSA 2048]----+ |B .. .o+| |=O.+. . o=| |O.O... . +..| | O. +.o E . | |*.o =.S . | |=. . oo . . | |. .. o .. . o| | . +. . o | | o. o. | +----[SHA256]-----+
- 生成的私鑰、公鑰文件默認存放在宿主目錄中的隱藏目錄.ssh/下
2.將公鑰文件上傳至服務(wù)器
ssh-copy-id root@20.0.0.12 "-i"選項:指定密鑰文件
[root@wzx ssh]# ssh-copy-id root@20.0.0.12 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" The authenticity of host '20.0.0.12 (20.0.0.12)' can't be established. ECDSA key fingerprint is SHA256:1R40yTT7DYnXgxAb8W4TabvlPcU9038lLVjDrQqnpnA. ECDSA key fingerprint is MD5:03:ae:25:33:8f:08:48:80:85:d4:3a:73:f2:49:83:a4. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@20.0.0.12's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@20.0.0.12'" and check to make sure that only the key(s) you wanted were added.
3.使用密鑰對驗證登錄
ssh root@20.0.0.12
[root@wzx ssh]# ssh root@20.0.0.12 Last login: Mon Aug 19 23:47:41 2024 from 20.0.0.1
二、TCP Wrappers訪問控制
1.TCP Wrappers 概述
- TCP Wrapper 機制的保護對象為各種網(wǎng)絡(luò)服務(wù)程序,針對訪問服務(wù)的客戶端地址進行訪問控制。
- 對應(yīng)的兩個策略文件為:/etc/hosts.allow 和 /etc/hosts.deny ,分別用來設(shè)置允許和拒絕的策略。
格式:
"服務(wù)程序列表":"客戶端地址列表"
(1) 服務(wù)程序列表:
- ALL:代表所有的服務(wù)
- 單個服務(wù)程序:如"vsftpd"
- 多個服務(wù)程序組成的列表:如"vsftpd.sshd"
(2) 客戶端地址列表:
- ALL:代表任何客戶端地址
- LOCAL:代表本機地址
- 多個地址以逗號分隔
- 允許使用通配符"*"、"?",
- 網(wǎng)段地址,如 192.168.20. 或 192.168.20.0/255.255.255.0
- 區(qū)域地址,如".benet.com"
2. TCP Wrappers 機制的基本原則
首先檢查/etc/hosts.allow(白名單)文件,如果找到相匹配的策略,則允許訪問;
否則繼續(xù)檢查/etc/hosts.deny(黑名單)文件,如果找到相匹配的策略,則拒絕訪問;
如果檢查上述兩個文件都找不到相匹配的策略,則運行訪問。
- 允許所有,拒絕個別:
只需在/etc/hosts.deny文件中添加相應(yīng)的拒絕策略
- 允許個別,拒絕所有:
除了在/etc/hosts.allow中添加允許策略之外,還需要再/etc/hosts.deny文件中設(shè)置"ALL:ALL"的拒絕策略。
三、對稱密鑰與非對稱密鑰
1.對稱密鑰(Symmetric Key)
對稱密鑰加密,又稱為私鑰加密或會話密鑰加密算法,是一種加密和解密使用相同密鑰或可以相互推算的密鑰對的加密方式。
優(yōu)點:
- 加解密速度快,適合處理大量數(shù)據(jù)
缺點:
- 密鑰管理困難,泄露風(fēng)險大
2.非對稱密鑰(Asymmetric Key)
非對稱密鑰加密,又稱為公鑰密鑰加密,它需要使用一對密鑰來分別完成加密和解密操作。這對密鑰包括一個公鑰和一個私鑰,公鑰可以公開發(fā)布,而私鑰則由用戶自己秘密保存。
優(yōu)點:
- 泄露風(fēng)險低
缺點:
- 加解密速度慢
四、在終端中使用私鑰文件登錄服務(wù)器
1.在服務(wù)端中生成密鑰
[root@wzx ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:xfbf6ZBU+BSvX7kPn4Pyu//Ug5kvOiZI2m6Bndv77Qg root@wzx The key's randomart image is: +---[RSA 2048]----+ | . | | . . o| | + . o.| | o . +..| | o S ...o.| | . = ..=o=| | + =E *++=| | . = o.+oo+=+| | o. .=+**==*| +----[SHA256]-----+
2.將id_rsa私鑰文件導(dǎo)出到客戶端(可使用ftp工具等)
3.找到公鑰文件并追加到authorized_keys文件內(nèi)
[root@wzx ~]# cd .ssh [root@wzx .ssh]# ls id_rsa id_rsa.pub [root@wzx .ssh]# cat id_rsa.pub >> authorized_keys [root@wzx .ssh]# ls authorized_keys id_rsa id_rsa.pub [root@wzx .ssh]# cat authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6bCV0EHdsXSD83CG4iNl81D1vDLiuywSsbj+3ANQOK4qRWNPOHfOIBXGANZQsT+33CrJY4ZvFnvcIeWpS+/fYyFnTekHPzuOROzcZYfkBxm1SB7YM5pLnHr8YdyUCOaYUhLYBuBixm80l1QvVOPnNRkKgzcOsOQSpOihGXgAa2d7lbOnr8UOO/aJ/6FQ2xxcCEcP9sG3h/uvCi7BP430XQPmfVksRm/tR+8sPNJNzioXgIoh5Sc6Rqp2C1IC3Krx3um4FCyqJJZJ6I7uY74g+L/Nt7IT3qTr13zVVjEAktNV0zMvdxRTNnIzEWTrhwEDASzJs3ewDjv1FESGErHTH root@wzx
4.配置sshd_config文件
ot@wzx .ssh]# vim /etc/ssh/sshd_config ...... PubkeyAuthentication yes #啟用公鑰驗證 ...... [root@wzx .ssh]# systemctl restart sshd #重啟刷新配置
5.在終端中設(shè)置私鑰登錄
6.登錄
成功登錄且不用輸入密碼
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Ubuntu搭建web站點并發(fā)布公網(wǎng)訪問詳細步驟(內(nèi)網(wǎng)穿透)
這篇文章主要給大家介紹了關(guān)于Ubuntu搭建web站點并發(fā)布公網(wǎng)訪問(內(nèi)網(wǎng)穿透)的相關(guān)資料,內(nèi)網(wǎng)穿透是一種實現(xiàn)在外網(wǎng)任意地點訪問內(nèi)網(wǎng)的方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2023-12-12怎樣給centos系統(tǒng)擴展磁盤分區(qū)的實現(xiàn)方法
這篇文章主要介紹了怎樣給centos系統(tǒng)擴展磁盤分區(qū)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12nacos在linux下啟動startup.sh報錯問題及解決
遇到Nacos啟動錯誤提示“Permission denied”,可通過執(zhí)行命令chmod u+x *.sh給予startup.sh執(zhí)行權(quán)限,解決權(quán)限問題,啟動成功,這是一種常見的解決Linux下腳本執(zhí)行權(quán)限問題的方法2023-03-03linux系統(tǒng)下oracle11gR2靜默安裝的經(jīng)驗分享
這篇文章主要介紹了linux系統(tǒng)下oracle11gR2靜默安裝的經(jīng)驗, 所有操作無需使用圖形界面. 靜默安裝能減少安裝出錯的可能性, 也能大大加快安裝速度。有需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01在Linux操作系統(tǒng)中修改環(huán)境變量的方法
在Linux操作系統(tǒng)中,有時候跟著教程安裝了一些軟件,安裝成功后,很高興的準備運行該軟件相應(yīng)命令,但是偶爾會遇到”Command not found…“的提示。原因是因為你安裝的軟件需要設(shè)置環(huán)境變量才能運行。接下來跟著小編一起學(xué)習(xí)在Linux操作系統(tǒng)中修改環(huán)境變量的方法。2015-08-08