Linux遠(yuǎn)程訪問及控制方式
一、SSH遠(yuǎn)程管理
1. SSH概述
SSH(Secure Shell)協(xié)議
- SSH是一種安全通道協(xié)議,主要用來實(shí)現(xiàn)字符界面的遠(yuǎn)程登錄,遠(yuǎn)程復(fù)制等功能。
- SSH協(xié)議對(duì)通信雙方的數(shù)據(jù)傳輸進(jìn)行了加密處理,其中包括用戶登陸時(shí)輸入的口令。
OpenSSH
OpenSSH是實(shí)現(xiàn)SSH協(xié)議的開源軟件項(xiàng)目,適用于各種UNIX、Linux操作系統(tǒng)。
- 服務(wù)名稱:sshd
- 默認(rèn)端口號(hào):22
- 服務(wù)端主程序:/usr/sbin/sshd
- 服務(wù)端配置文件:/etc/ssh/sshd_config
- 客戶端配置文件:/etc/ssh/ssh_config
2.SSH的優(yōu)點(diǎn)
- SSH是較可靠,專為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議
- 利用SSH協(xié)議可以有效防止遠(yuǎn)程管理過程中的信息泄露問題
- SSH最初是Unix系統(tǒng)中的一個(gè)程序,后來又迅速擴(kuò)展到其他操作平臺(tái)
- SSH在正確使用時(shí)可彌補(bǔ)網(wǎng)絡(luò)中的漏洞
- 數(shù)據(jù)傳輸?shù)倪^程是加密的,具有安全穩(wěn)定的特點(diǎn)
- 數(shù)據(jù)傳輸?shù)姆绞绞菈嚎s的,可以提高傳輸速度
3.配置OpenSSH客戶端
- shd_config配置文件的常用選項(xiàng)設(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 #登錄驗(yàn)證時(shí)間為 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的主機(jī)遠(yuǎn)程登錄 DenyUsers zhangsan #禁止某些用戶登錄,用法于AllowUsers類似(注意不要同時(shí)使用)
4.sshd服務(wù)支持的兩種驗(yàn)證方式
密碼驗(yàn)證
- 對(duì)服務(wù)器中本地系統(tǒng)用戶的登錄名稱、密碼進(jìn)行驗(yàn)證。
- 簡(jiǎn)便,但可能會(huì)被暴力/破解
密鑰對(duì)驗(yàn)證
- 有球提供相匹配的密鑰信息才能通過驗(yàn)證。
- 通常先在客戶端中創(chuàng)建一對(duì)密鑰文件(公鑰、私鑰),然后將公鑰文件放到服務(wù)器中的指定位置。
- 遠(yuǎn)程登錄時(shí),系統(tǒng)將使用公鑰、私鑰進(jìn)行加密\解密關(guān)聯(lián)驗(yàn)證。
- 能夠增強(qiáng)安全性,且可以免交互登錄
5. 使用SSH客戶端程序
5.1 ssh - 遠(yuǎn)程登錄
ssh "選項(xiàng)" "用戶名"@"ip\名稱" 例: ssh -p 1022 zhangsan@20.0.0.13 # "-p"指定端口號(hào)
5.2 scp - 遠(yuǎn)程復(fù)制
- 下行復(fù)制:
scp "用戶名"@"ip/名稱":"被復(fù)制的遠(yuǎn)程主機(jī)文件路徑" "復(fù)制到的本機(jī)文件路徑" 例:scp root@20.0.0.13:/etc/passwd /root/passwd10.txt
- 上行復(fù)制:
scp "被復(fù)制的本機(jī)文件路徑" "用戶名"@"ip\名稱":"復(fù)制到的遠(yuǎn)程主機(jī)文件路徑" 例:scp /root/passwd root@20.0.0.13:/etc/passwd10.txt
- "-r"選項(xiàng):遞歸復(fù)制目錄
- "-P"選項(xiàng):指定端口號(hào)
6.配置密鑰對(duì)驗(yàn)證
1.在客戶端使用ssh-keygen工具創(chuàng)建密鑰對(duì)文件(可用的加密算法為RSA、ECDSA、DSA等)
ssh-kegen -t rsa #"-t"選項(xiàng):指定加密算法類型
[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): #指定私鑰位置(回車默認(rèn)) Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): #設(shè)置私鑰密碼(回車默認(rèn)) Enter same passphrase again: #確認(rèn)輸入(回車默認(rèn)) 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]-----+
- 生成的私鑰、公鑰文件默認(rèn)存放在宿主目錄中的隱藏目錄.ssh/下
2.將公鑰文件上傳至服務(wù)器
ssh-copy-id root@20.0.0.12 "-i"選項(xiàng):指定密鑰文件
[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.使用密鑰對(duì)驗(yàn)證登錄
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 機(jī)制的保護(hù)對(duì)象為各種網(wǎng)絡(luò)服務(wù)程序,針對(duì)訪問服務(wù)的客戶端地址進(jìn)行訪問控制。
- 對(duì)應(yīng)的兩個(gè)策略文件為:/etc/hosts.allow 和 /etc/hosts.deny ,分別用來設(shè)置允許和拒絕的策略。
格式:
"服務(wù)程序列表":"客戶端地址列表"
(1) 服務(wù)程序列表:
- ALL:代表所有的服務(wù)
- 單個(gè)服務(wù)程序:如"vsftpd"
- 多個(gè)服務(wù)程序組成的列表:如"vsftpd.sshd"
(2) 客戶端地址列表:
- ALL:代表任何客戶端地址
- LOCAL:代表本機(jī)地址
- 多個(gè)地址以逗號(hào)分隔
- 允許使用通配符"*"、"?",
- 網(wǎng)段地址,如 192.168.20. 或 192.168.20.0/255.255.255.0
- 區(qū)域地址,如".benet.com"
2. TCP Wrappers 機(jī)制的基本原則
首先檢查/etc/hosts.allow(白名單)文件,如果找到相匹配的策略,則允許訪問;
否則繼續(xù)檢查/etc/hosts.deny(黑名單)文件,如果找到相匹配的策略,則拒絕訪問;
如果檢查上述兩個(gè)文件都找不到相匹配的策略,則運(yùn)行訪問。
- 允許所有,拒絕個(gè)別:
只需在/etc/hosts.deny文件中添加相應(yīng)的拒絕策略
- 允許個(gè)別,拒絕所有:
除了在/etc/hosts.allow中添加允許策略之外,還需要再/etc/hosts.deny文件中設(shè)置"ALL:ALL"的拒絕策略。
三、對(duì)稱密鑰與非對(duì)稱密鑰
1.對(duì)稱密鑰(Symmetric Key)
對(duì)稱密鑰加密,又稱為私鑰加密或會(huì)話密鑰加密算法,是一種加密和解密使用相同密鑰或可以相互推算的密鑰對(duì)的加密方式。
優(yōu)點(diǎn):
- 加解密速度快,適合處理大量數(shù)據(jù)
缺點(diǎn):
- 密鑰管理困難,泄露風(fēng)險(xiǎn)大
2.非對(duì)稱密鑰(Asymmetric Key)
非對(duì)稱密鑰加密,又稱為公鑰密鑰加密,它需要使用一對(duì)密鑰來分別完成加密和解密操作。這對(duì)密鑰包括一個(gè)公鑰和一個(gè)私鑰,公鑰可以公開發(fā)布,而私鑰則由用戶自己秘密保存。
優(yōu)點(diǎn):
- 泄露風(fēng)險(xiǎn)低
缺點(diǎn):
- 加解密速度慢
四、在終端中使用私鑰文件登錄服務(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 #啟用公鑰驗(yàn)證 ...... [root@wzx .ssh]# systemctl restart sshd #重啟刷新配置
5.在終端中設(shè)置私鑰登錄
6.登錄
成功登錄且不用輸入密碼
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Ubuntu搭建web站點(diǎn)并發(fā)布公網(wǎng)訪問詳細(xì)步驟(內(nèi)網(wǎng)穿透)
這篇文章主要給大家介紹了關(guān)于Ubuntu搭建web站點(diǎn)并發(fā)布公網(wǎng)訪問(內(nèi)網(wǎng)穿透)的相關(guān)資料,內(nèi)網(wǎng)穿透是一種實(shí)現(xiàn)在外網(wǎng)任意地點(diǎn)訪問內(nèi)網(wǎng)的方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12怎樣給centos系統(tǒng)擴(kuò)展磁盤分區(qū)的實(shí)現(xiàn)方法
這篇文章主要介紹了怎樣給centos系統(tǒng)擴(kuò)展磁盤分區(qū)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12nacos在linux下啟動(dòng)startup.sh報(bào)錯(cuò)問題及解決
遇到Nacos啟動(dòng)錯(cuò)誤提示“Permission denied”,可通過執(zhí)行命令chmod u+x *.sh給予startup.sh執(zhí)行權(quán)限,解決權(quán)限問題,啟動(dòng)成功,這是一種常見的解決Linux下腳本執(zhí)行權(quán)限問題的方法2023-03-03linux系統(tǒng)下oracle11gR2靜默安裝的經(jīng)驗(yàn)分享
這篇文章主要介紹了linux系統(tǒng)下oracle11gR2靜默安裝的經(jīng)驗(yàn), 所有操作無(wú)需使用圖形界面. 靜默安裝能減少安裝出錯(cuò)的可能性, 也能大大加快安裝速度。有需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01在Linux操作系統(tǒng)中修改環(huán)境變量的方法
在Linux操作系統(tǒng)中,有時(shí)候跟著教程安裝了一些軟件,安裝成功后,很高興的準(zhǔn)備運(yùn)行該軟件相應(yīng)命令,但是偶爾會(huì)遇到”Command not found…“的提示。原因是因?yàn)槟惆惭b的軟件需要設(shè)置環(huán)境變量才能運(yùn)行。接下來跟著小編一起學(xué)習(xí)在Linux操作系統(tǒng)中修改環(huán)境變量的方法。2015-08-08