[Linux入門] Linux 遠程訪問及控制全解析:從入門到實戰

目錄

一、SSH 遠程管理:為什么它是遠程訪問的首選?

1??什么是 SSH?

2??SSH 為什么比傳統工具更安全?

3??SSH 的 “三大組成部分”

4??SSH 工作的 “五步流程”

5??常用 SSH 工具

二、實戰:構建 SSH 遠程登錄服務(OpenSSH)

1??安裝 OpenSSH

2??啟動 SSH 服務

3??核心配置:通過 sshd_config 提高安全性

(1)服務監聽選項

(2)用戶登錄控制

(3)登錄驗證方式

4??密鑰對驗證:免密登錄的實現

(1)客戶端生成密鑰對

(2)將公鑰傳到目標服務器

(3)配置服務器并測試

三、遠程文件傳輸:scp 與 sftp 的使用

1??scp:命令行快速傳輸

常用選項:

示例:

2??sftp:交互式文件管理

(1)連接服務器:

(2)常用命令:

示例:

四、TCP Wrappers:傳輸層的訪問控制

1??什么是 TCP Wrappers?

2??核心配置文件

生效規則:

3??配置格式與實例

客戶端地址支持的格式:

實例 1:僅允許指定 IP 訪問 sshd

實例 2:允許特定網段訪問,拒絕其他

五、新手必知的安全建議

總結


在 Linux 系統管理中,遠程訪問是一項核心技能。無論是管理服務器集群還是調試遠程設備,安全高效的遠程控制能力都至關重要。本文將基于 SSH 協議,從基礎概念到實戰配置,全面講解 Linux 遠程訪問及控制的知識,適合初學者快速上手。

一、SSH 遠程管理:為什么它是遠程訪問的首選?

1??什么是 SSH?

SSH(Secure Shell)是一種安全通道協議,通過加密和認證機制實現遠程登錄、文件傳輸等操作。它最核心的價值是加密傳輸數據—— 包括用戶口令、命令內容等,徹底解決了傳統遠程工具(如 Telnet、FTP)明文傳輸的安全隱患。

舉個例子:用 Telnet 遠程登錄時,你的密碼會像明信片一樣在網絡中 “裸奔”,而 SSH 會給這張 “明信片” 套上加密的 “信封”,只有目標服務器能解開。

2??SSH 為什么比傳統工具更安全?

  • 傳統工具的問題:Telnet(遠程登錄)、FTP(文件傳輸)、RSH(遠程執行命令)等均采用明文傳輸,數據易被竊聽或篡改。
  • SSH 的優勢:
    • 加密通信:所有數據通過加密算法處理,防止竊聽;
    • 身份認證:支持密碼、密鑰等多種認證方式,確保訪問者合法;
    • 完整性保護:通過 HMAC 算法驗證數據,防止傳輸中被篡改。

3??SSH 的 “三大組成部分”

SSH 協議由三個子協議構成,分工明確:

  • 傳輸層協議(SSH-TRANS):負責服務器認證、數據加密和完整性保護,是整個 SSH 的 “安全基礎”,運行在 TCP 連接上(默認端口 22)。
  • 用戶認證協議(SSH-USERAUTH):基于傳輸層協議,實現客戶端用戶的身份驗證(如密碼、密鑰驗證)。
  • 連接協議(SSH-CONNECT):將加密隧道分成多個邏輯通道,支持同時進行遠程登錄、命令執行、端口轉發等操作。

4??SSH 工作的 “五步流程”

  1. 建立連接:客戶端向服務器的 22 端口發起 TCP 連接;
  2. 版本協商:雙方確定使用 SSH1.X 還是 SSH2.0(推薦用 V2,安全性更高);
  3. 算法協商:約定密鑰交換、對稱加密、公鑰等算法;
  4. 密鑰交換:動態生成會話密鑰和會話 ID,建立加密通道;
  5. 用戶認證:客戶端通過密碼、密鑰等方式證明身份,認證通過后即可遠程操作。

5??常用 SSH 工具

  • OpenSSH:開源的 SSH 實現,幾乎所有 Linux 發行版默認安裝,包含服務端(sshd)和客戶端(ssh、scp 等)。
  • PuTTY:Windows 平臺常用的 SSH 客戶端,支持圖形界面,適合新手操作。

二、實戰:構建 SSH 遠程登錄服務(OpenSSH)

OpenSSH 是 Linux 系統中最常用的 SSH 工具集,分為服務端(提供遠程訪問功能)和客戶端(連接遠程服務端的工具)。下面一步步教你從安裝到配置。

1??安裝 OpenSSH

大部分 Linux 發行版默認預裝 OpenSSH,若未安裝,可按以下命令操作:

系統類型安裝命令
CentOS/RHELsudo yum install openssh-clients openssh-server
Ubuntu/Debiansudo apt install openssh-client openssh-server

安裝后驗證:

  • 查看版本:ssh -V(出現版本信息說明安裝成功);
  • 檢查服務狀態:systemctl status sshd(顯示 “active (running)” 即為運行中)。

2??啟動 SSH 服務

bash

# 啟動服務
sudo systemctl start sshd
# 設置開機自啟(推薦)
sudo systemctl enable sshd

3??核心配置:通過 sshd_config 提高安全性

SSH 服務的配置文件為/etc/ssh/sshd_config,修改后需重啟服務(sudo systemctl restart sshd)生效。以下是新手必知的關鍵配置項:

(1)服務監聽選項
  • Port 22:默認端口為 22,建議修改為 1024-65535 之間的端口(如 2222),減少被掃描的風險;
  • ListenAddress 192.168.1.100:指定監聽的 IP 地址(僅允許該 IP 接收 SSH 連接);
  • Protocol 2:強制使用 SSH V2 協議(比 V1 更安全);
  • UseDNS no:禁用 DNS 反向解析,提高服務器響應速度。
(2)用戶登錄控制
  • PermitRootLogin no:禁止 root 用戶直接遠程登錄(強烈推薦!建議先用普通用戶登錄,再用su切換為 root);
  • PermitEmptyPasswords no:禁止空密碼用戶登錄;
  • MaxAuthTries 3:最大重試次數(默認 6 次,改小可防暴力破解);
  • AllowUsers jerry admin@61.23.24.25:僅允許指定用戶登錄(如允許 jerry,且 admin 只能從 61.23.24.25 登錄)。
(3)登錄驗證方式

SSH 支持兩種驗證方式,可單獨或同時啟用:

  • 密碼驗證:通過用戶名 + 密碼驗證,簡單但易被暴力破解;
  • 密鑰對驗證:通過客戶端私鑰和服務器公鑰匹配驗證,安全性極高,推薦優先使用。

配置項:

  • PubkeyAuthentication yes:啟用密鑰認證;
  • AuthorizedKeysFile .ssh/authorized_keys:指定存放客戶端公鑰的文件路徑;
  • PasswordAuthentication no:(可選)禁用密碼驗證,僅用密鑰(適合高安全場景)。

4??密鑰對驗證:免密登錄的實現

密鑰對驗證是 SSH 最安全的登錄方式,步驟如下:

(1)客戶端生成密鑰對

在本地客戶端(如你的電腦)執行:

bash

# 生成RSA密鑰對(-t指定算法,-b指定長度,-C添加注釋)
ssh-keygen -t rsa -b 4096 -C "myemail@example.com"

執行后會在~/.ssh/目錄下生成兩個文件:

  • id_rsa:私鑰(重要!不可泄露);
  • id_rsa.pub:公鑰(需傳到服務器)。
(2)將公鑰傳到目標服務器

方法 1:用ssh-copy-id自動復制(推薦):

bash

# 替換為服務器用戶名和IP
ssh-copy-id username@server_ip

輸入服務器密碼后,公鑰會自動添加到服務器的~/.ssh/authorized_keys文件中。

方法 2:手動復制:

  1. 查看本地公鑰內容:cat ~/.ssh/id_rsa.pub
  2. 登錄服務器,編輯~/.ssh/authorized_keys,將公鑰內容粘貼進去;
  3. 確保權限正確:chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys(權限錯誤會導致驗證失敗)。
(3)配置服務器并測試
  1. 編輯服務器/etc/ssh/sshd_config,確保:

    bash

    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    
  2. 重啟服務:sudo systemctl restart sshd
  3. 客戶端測試登錄:ssh username@server_ip(無需輸入密碼,直接登錄)。

三、遠程文件傳輸:scp 與 sftp 的使用

通過 SSH 不僅能遠程登錄,還能安全傳輸文件,常用工具為scpsftp

1??scp:命令行快速傳輸

scp(Secure Copy)基于 SSH 協議,可在本地與遠程主機間復制文件 / 目錄,語法:

bash

scp [選項] 源路徑 目標路徑
常用選項:
  • -r:遞歸復制目錄(必須加,否則無法復制目錄);
  • -P 端口號:指定 SSH 端口(默認 22,大寫 P);
  • -i 密鑰文件:指定私鑰路徑(非默認位置時使用);
  • -C:啟用壓縮傳輸(節省帶寬)。
示例:
  • 本地文件上傳到服務器:

    bash

    scp /local/file.txt username@server_ip:/remote/path/
    
  • 服務器文件下載到本地:

    bash

    scp username@server_ip:/remote/file.txt /local/path/
    
  • 復制目錄:

    bash

    scp -r /local/dir username@server_ip:/remote/path/
    

2??sftp:交互式文件管理

sftp(SSH File Transfer Protocol)提供類似 FTP 的交互式環境,適合頻繁管理文件,步驟:

(1)連接服務器:

bash

# 格式:sftp [選項] 用戶名@服務器IP
sftp -P 2222 username@server_ip  # -P指定端口
(2)常用命令:
  • ls:查看遠程目錄;
  • lcd 本地路徑:切換本地目錄;
  • cd 遠程路徑:切換遠程目錄;
  • get 遠程文件 本地路徑:下載文件;
  • put 本地文件 遠程路徑:上傳文件;
  • exit:退出會話。
示例:

bash

# 連接后下載文件
sftp> get /remote/data.csv /local/download/
# 上傳文件
sftp> put /local/report.pdf /remote/docs/

四、TCP Wrappers:傳輸層的訪問控制

除了 SSH 自身的配置,Linux 還提供TCP Wrappers工具,在傳輸層對網絡服務進行訪問控制(類似 “黑白名單”)。

1??什么是 TCP Wrappers?

它是一種工作在傳輸層(TCP)?的安全機制,通過 “包裹” 網絡服務程序(如 sshd、vsftpd),對客戶端的訪問請求進行過濾。只有通過驗證的請求才能訪問真正的服務。

判斷服務是否受其控制:用ldd命令查看服務是否依賴libwrap.so庫,例如:

bash

ldd /usr/sbin/sshd | grep "libwrap"  # 若有輸出,說明sshd受控制

2??核心配置文件

TCP Wrappers 通過兩個文件實現控制:

  • /etc/hosts.allow:允許訪問的規則;
  • /etc/hosts.deny:拒絕訪問的規則。
生效規則:
  1. 先檢查hosts.allow,找到匹配規則則允許訪問;
  2. 若未匹配,檢查hosts.deny,找到匹配規則則拒絕訪問;
  3. 若均無匹配,默認允許訪問。

3??配置格式與實例

格式:服務程序列表: 客戶端地址列表(多個項用逗號分隔)。

客戶端地址支持的格式:
  • 單個 IP:如192.168.1.100
  • 網段:如192.168.1.0/24192.168.1.
  • 域名:如.example.com(匹配該域下所有主機);
  • ALL:所有客戶端。
實例 1:僅允許指定 IP 訪問 sshd
  • 編輯/etc/hosts.allow,添加:

    bash

    sshd: 192.168.141.130  # 允許該IP訪問sshd
    
  • 編輯/etc/hosts.deny,添加:

    bash

    sshd: ALL  # 拒絕其他所有IP訪問sshd
    
實例 2:允許特定網段訪問,拒絕其他
  • hosts.allow添加:

    bash

    sshd: 12.0.0.1, 192.168.80.*  # 允許12.0.0.1和192.168.80網段
    
  • hosts.deny添加:

    bash

    sshd: ALL  # 拒絕其他
    

五、新手必知的安全建議

  1. 禁用 root 直接登錄:在sshd_config中設置PermitRootLogin no,通過普通用戶 +su切換;
  2. 使用密鑰認證:禁用密碼認證(PasswordAuthentication no),避免暴力破解;
  3. 修改默認端口:將Port 22改為其他端口(如 2222),減少掃描風險;
  4. 限制登錄來源:通過AllowUsers或 TCP Wrappers,僅允許信任的 IP 訪問;
  5. 定期更新 OpenSSH:修復潛在漏洞,用yum updateapt upgrade更新。

總結

Linux 遠程訪問的核心是 SSH 協議,通過 OpenSSH 工具集實現安全的遠程登錄和文件傳輸。新手需掌握:

  • SSH 的基本原理和優勢;
  • OpenSSH 的安裝、配置(尤其是安全選項);
  • 密鑰對驗證的免密登錄配置;
  • scp/sftp 的文件傳輸操作;
  • TCP Wrappers 的訪問控制。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/90682.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/90682.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/90682.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

n8n AI資訊聚合與分發自動化教程:從數據獲取到微信與Notion集成

引言 n8n簡介:自動化工作流利器 n8n是一款功能強大的開源自動化工具,采用獨特的“公平代碼”(Fair-Code)許可模式,旨在幫助用戶連接各種應用程序和服務,從而實現工作流的自動化。它通過直觀的可視化界面&am…

遞歸查詢美國加速-技術演進與行業應用深度解析

在當今數據驅動的時代,遞歸查詢已成為處理層級數據的核心技術,尤其在美國科技領域獲得廣泛應用。本文將深入解析遞歸查詢在美國加速發展的關鍵因素,包括技術演進、行業應用場景以及性能優化策略,幫助讀者全面理解這一重要技術趨勢…

【AIGC專欄】WebUI實現圖片的縮放

圖片的縮放包含如下的各類不同的縮放模型。 Lanczos Lanczos重采樣是一種數學上精確的方法,用于圖像放大或縮小。它使用了一種稱為 sinc 函數的數學公式,可以在保留圖像細節的同時減少鋸齒效應。 Nearest 最近鄰插值是一種簡單的圖像放大方法,通過復制最近的像素值來填充新…

Libevent(4)之使用教程(3)配置

Libevent(4)之使用教程(3)配置事件 Author: Once Day Date: 2025年7月27日 一位熱衷于Linux學習和開發的菜鳥,試圖譜寫一場冒險之旅,也許終點只是一場白日夢… 漫漫長路,有人對你微笑過嘛… 本文檔翻譯于:Fast portable non-bl…

若依前后端分離版學習筆記(三)——表結構介紹

前言: 這一節將ruoyi框架中數據庫中的表結構過一遍,查看都有哪些表及其表結構及關聯關系,為后續代碼學習做準備。 一 代碼生成表記錄代碼生成的業務表及相關字段1 代碼生成業務表 CREATE TABLE gen_table (table_id bigint(20) NOT NULL AUTO…

NFS服務安裝與使用

概述 內網需要使用NFS服務掛載到其他服務器,用做數據備份使用。 安裝 # Centos yum install -y nfs-utils # Ubuntu apt install nfs-common配置 # 編輯 vim /etc/exports # 輸入內容 /public/KOL-ESbackup 172.29.1.0/24 192.168.8.63 192.168.8.64 192.168.8.65(r…

使用adb 發送廣播 動態改變app內的值

前言 在開發過程中有時候我們需要做一些調試工作。可以通過adb發送廣播實現。 廣播注冊 注意最后一個參數,Context.RECEIVER_EXPORTED 這是Android 34以后強制要求的,方便外部發送這個廣播。否則會報錯val filter IntentFilter()filter.addAction("…

【Web安全】邏輯漏洞之URL跳轉漏洞:原理、場景與防御

文章目錄前言一、漏洞本質二、攻擊原理正常跳轉流程漏洞觸發流程三、抓包的關鍵時機:跳轉參數生成時四、風險場景1.登錄/注冊后跳轉2.退出登錄跳轉3.分享/廣告鏈接跳轉4.密碼重置鏈接跳轉五、漏洞挖掘:怎么找到這種漏洞?1.找到跳轉參數2.篡改…

新手開發 App,容易陷入哪些誤區?

新手開發 App 時,常因對流程和用戶需求理解不足陷入誤區,不僅拖慢進度,還可能導致產品無人問津。?功能堆砌是最常見的陷阱。不少新手總想 “一步到位”,在初期版本就加入十幾項功能,比如做社區團購 App 時&#xff0c…

Linux學習篇11——Linux軟件包管理利器:RPM與YUM詳解與實戰指南,包含如何配置失效的YUM鏡像地址

引言 本文主要梳理 Linux 系統中的軟件包的概念,同時介紹RPM與YUM兩大核心管理工具的常用指令、區別聯系以及實戰技巧等。本文作為作者學習Linux系統的第11篇文章,依舊旨在總結當前的學習內容,同時鞏固知識以便日后的學習復習回顧。如有說的…

Vue3+ElementPlus實現可拖拽/吸附/搜索/收起展開的浮動菜單組件

在開發后臺管理系統時,我們經常會用到浮動菜單來快速訪問某些功能。本篇文章將分享一個基于 Vue3 ElementPlus 實現的浮動菜單組件,支持拖拽移動、邊緣吸附、二級菜單展開、菜單搜索過濾、視頻彈窗等交互效果,極大提升了用戶操作的便捷性與美…

CSS 盒子模型學習版的理解

文章目錄一、盒子模型構建流程(一句話抓關鍵)二、核心邏輯提煉三、代碼驗證四、一句話總結流程通過手繪圖示,清晰拆解 Content(內容)→ Padding(內邊距)→ Border(邊框)→…

解決線程安全的幾個方法

線程安全:線程安全問題的發現與解決-CSDN博客 Java中所使用的并發機制依賴于JVM的實現和CPU的指令。 所以了解并掌握深入Java并發編程基礎的前提知識是熟悉JVM的實現了解CPU的指令。 1.volatile簡介 在多線程并發編程中,有兩個重要的關鍵字&#xff1a…

大模型應用班-第2課 DeepSeek使用與提示詞工程課程重點 學習ollama 安裝 用deepseek-r1:1.5b 分析PDF 內容

DeepSeek使用與提示詞工程課程重點Homework:ollama 安裝 用deepseek-r1:1.5b 分析PDF 內容python 代碼建構:1.小模型 1.5b 可以在 筆記本上快速執行2.分析結果還不錯3. 重點是提示詞 prompt 的寫法一、DeepSeek模型創新與特點1. DeepSeek-V3模型特點采用…

在FreeBSD系統下使用llama-cpp運行飛槳開源大模型Ernie4.5 0.3B(失敗)

先上結論,截止到目前2025.7.25日,還不能用。也就是Ernie4.5模型無法在llama.cpp 和Ollama上進行推理,原因主要就llama是不支持Ernie4.5異構MoE架構。 不局限于FreeBSD系統,Windows也測試失敗,理論上Ubuntu下也是不行。…

OpenCV圖像梯度、邊緣檢測、輪廓繪制、凸包檢測大合集

一、圖像梯度 在圖像處理中,「梯度(Gradient)」是一個非常基礎但又極其重要的概念。它是圖像邊緣檢測、特征提取、紋理分析等眾多任務的核心。梯度的本質是在空間上描述像素灰度值變化的快慢和方向。 但我們如何在圖像中計算梯度?…

GitHub 趨勢日報 (2025年07月25日)

📊 由 TrendForge 系統生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日報中的項目描述已自動翻譯為中文 📈 今日獲星趨勢圖 今日獲星趨勢圖1814Resume-Matcher985neko714Qwen3-Coder622OpenBB542BillionMail486hrms219hyper…

編程語言Java——核心技術篇(五)IO流:數據洪流中的航道設計

🌟 你好,我是 勵志成為糕手 ! 🌌 在代碼的宇宙中,我是那個追逐優雅與性能的星際旅人。 ? 每一行代碼都是我種下的星光,在邏輯的土壤里生長成璀璨的銀河; 🛠? 每一個算法都是我繪制…

基于FPGA的16QAM軟解調+卷積編碼Viterbi譯碼通信系統,包含幀同步,信道,誤碼統計,可設置SNR

目錄 1.引言 2.算法仿真效果 3.算法涉及理論知識概要 3.1 16QAM調制軟解調原理 3.2 幀同步 3.3 卷積編碼,維特比譯碼 4.Verilog程序接口 5.參考文獻 6.完整算法代碼文件獲得 1.引言 基于FPGA的16QAM軟解調卷積編碼Viterbi譯碼通信系統開發,包含幀同步,高斯…

Python數據分析基礎(二)

一、Numpy 常用函數分類概覽函數類別常用函數基本數學函數np.sum(x)、np.sqrt(x)、np.exp(x)、np.log(x)、np.sin(x)、np.abs(x)、np.power(a, b)、np.round(x, n) 等統計函數np.mean(x)、np.median(x)、np.std(x)、np.var(x)、np.min(x)、np.max(x)、np.percentile(x, q) 等比…