Linux 遠程連接與文件傳輸:從基礎到高級配置

Linux 遠程連接與文件傳輸:從基礎到高級配置

在 Linux 系統管理中,遠程連接和文件傳輸是核心技能。SSH 協議提供了安全的遠程訪問方式,而基于 SSH 的 SFTP 和 SCP 則解決了跨服務器文件傳輸的需求。下面將詳細解析 SSH 服務配置、三種遠程操作方式的使用及密鑰認證的配置過程

一、SSH 服務基礎配置與管理

SSH 服務是 Linux 遠程管理的基石,配置和啟動步驟如下:

1. 掛載光驅獲取軟件源(如使用本地 ISO 鏡像)
mount /dev/cdrom /mnt  # 掛載光驅到/mnt目錄
2. 安裝 SSH 服務端
yum -y install openssh openssh-clients  # 安裝SSH服務端和客戶端
3. 管理 SSH 服務
systemctl restart sshd  # 重啟SSH服務
systemctl enable sshd   # 設置開機自啟
systemctl status sshd   # 查看服務狀態(檢查是否正常運行)

二、SSH 遠程連接:三種方式對比與使用

SSH 提供了三種遠程操作方式,適用于不同場景:

工具協議主要功能適用場景典型命令
SSHSSH遠程命令執行、交互式 Shell系統管理、執行命令ssh 用戶名@服務器IP
SFTPSSH交互式文件傳輸(上傳 / 下載)交互式文件操作sftp 用戶名@服務器IP put 本地文件 遠程目錄 get 遠程文件 本地目錄
SCPSSH非交互式文件傳輸(一次性操作)腳本自動化、批量傳輸scp 本地文件 用戶名@服務器IP:遠程目錄 scp 用戶名@服務器IP:遠程文件 本地目錄

三、SSH 遠程連接詳解

1. 基礎連接命令
ssh root@172.25.0.183  # 以root用戶連接到指定IP的服務器
2. 圖形化界面遠程調用
ssh -X root@172.25.0.183  # -X參數啟用X11轉發,可遠程運行圖形化程序
3. SSH 協議工作原理(技術細節)

SSH 協議包含三個核心子協議:

  1. 連接協議:負責建立和管理客戶端與服務器的連接
  2. 用戶認證協議:驗證用戶身份(密碼認證或密鑰認證)
  3. 傳輸協議:加密數據傳輸,確保安全性

SSH 連接建立的五個階段:

  1. 版本協商:客戶端與服務器交換支持的 SSH 版本
  2. 密鑰和算法協商:確定加密算法和會話密鑰
  3. 用戶認證:驗證用戶身份
  4. 會話請求:請求交互式 Shell 或其他服務
  5. 交互會話:建立安全通道,傳輸命令和輸出

四、SFTP 文件傳輸詳解

1. 連接與基本操作
sftp root@172.25.0.183  # 連接到服務器,進入SFTP交互式環境
2. 上傳與下載命令
put /tmp/aa /var  # 上傳本地/tmp/aa文件到服務器/var目錄
get /tmp/cc /var  # 下載服務器/tmp/cc文件到本地/var目錄
3. SFTP 常用命令(交互式環境)
命令作用
ls查看遠程服務器文件列表
lls查看本地文件列表
cd 目錄切換遠程目錄
lcd 目錄切換本地目錄
mkdir 目錄創建遠程目錄
rm 文件名刪除遠程文件
exit退出 SFTP 會話

五、SCP 文件傳輸詳解

1. 上傳文件
scp /tmp/aa root@172.25.0.183:/var  # 上傳本地/tmp/aa到服務器/var目錄
2. 下載文件
scp root@172.25.0.183:/tmp/cc /var  # 下載服務器/tmp/cc到本地/var目錄
3. 高級用法:遞歸復制目錄
scp -r /tmp/dir root@172.25.0.183:/var  # 遞歸上傳本地目錄到服務器
scp -r root@172.25.0.183:/tmp/dir /var  # 遞歸下載服務器目錄到本地

六、SSH 密鑰認證配置(免密碼登錄)

密鑰認證比密碼認證更安全,適合自動化腳本和頻繁登錄場景。配置步驟如下:

1. 在客戶端生成密鑰對
ssh-keygen  # 生成密鑰對(默認生成id_rsa私鑰和id_rsa.pub公鑰)
  • 按提示操作,可直接回車使用默認選項
  • 密鑰對默認保存在~/.ssh/目錄下
2. 將公鑰上傳到服務器
ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.25.0.183  # 上傳公鑰到服務器
  • 此命令會將公鑰添加到服務器的~/.ssh/authorized_keys文件中
  • 上傳后,服務器會自動配置正確的文件權限
3. 驗證密鑰認證
ssh root@172.25.0.183  # 嘗試連接,應無需密碼直接登錄
4. 密鑰認證原理
  • 客戶端生成密鑰對(私鑰保留在本地,公鑰分發到服務器)
  • 登錄時,服務器向客戶端發送挑戰
  • 客戶端使用私鑰加密挑戰并返回
  • 服務器使用存儲的公鑰解密驗證,確認客戶端身份

七、常見問題與解決方法

  1. SSH 連接被拒絕
    • 檢查服務器 SSH 服務是否運行:systemctl status sshd
    • 檢查防火墻是否開放 22 端口:firewall-cmd --zone=public --permanent --add-port=22/tcp
  2. SFTP/SCP 無法上傳下載
    • 檢查目錄權限:確保目標目錄有寫入權限
    • 檢查 SELinux 狀態:臨時關閉測試:setenforce 0
  3. 密鑰認證失敗
    • 檢查密鑰文件權限:~/.ssh目錄應為 700,私鑰文件應為 600
    • 檢查~/.ssh/authorized_keys文件權限和內容
  4. X11 轉發失敗
    • 確保服務器sshd_config中啟用 X11 轉發:X11Forwarding yes
    • 客戶端安裝 X 服務器(如 Xming for Windows)

八、安全增強建議

  1. 修改 SSH 默認端口(提高安全性,減少被掃描概率)

    vim /etc/ssh/sshd_config  # 編輯配置文件
    Port 2222                 # 修改Port為非22端口
    systemctl restart sshd    # 重啟服務生效
    
  2. 禁用 root 直接登錄

    vim /etc/ssh/sshd_config
    PermitRootLogin no        # 禁止root登錄
    
  3. 限制可登錄用戶

    vim /etc/ssh/sshd_config
    AllowUsers user1 user2    # 只允許user1和user2登錄
    
  4. 啟用防火墻限制 SSH 訪問

    firewall-cmd --zone=public --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
    firewall-cmd --reload
    

    此配置僅允許 192.168.1.0/24 網段的 IP 訪問 SSH 服務

掌握 SSH 遠程連接和文件傳輸是 Linux 系統管理的基礎技能。通過合理配置 SSH 服務、靈活使用 SSH/SFTP/SCP 工具,以及正確設置密鑰認證,可以高效、安全地管理遠程服務器。遇到問題時,結合日志文件(/var/log/secure)和配置檢查,能快速定位并解決問題

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

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

相關文章

17. 如何修改 flex 主軸方向

總結 flex-direction: row | row-reverse | column | column-reverse;一、作用說明 在 Flex 布局中,默認的主軸(main axis)方向是 水平向右(即 row)。 通過設置 flex-direction 屬性,可以靈活改變主軸的方向…

【Linux】重生之從零開始學習運維之mysql用戶管理

mariadb用戶管理創建用戶create user test210.0.0.% identified by 123456;用戶改名rename user test210.0.0.% to test310.0.0.%;用戶刪除 drop user test310.0.0.%;mysql用戶管理創建用戶create user test210.0.0.% identified by 123456;用戶改名rename user test210.0.0.% …

matlab小計

3.變量命名_嗶哩嗶哩_bilibili clc 清空頁面 文件名:字母開頭 clc:清除命令行窗口 clear all:清除工作區變量 編譯器里面 %%注釋 24 2-4 2*4 4/2 cumsum累計和 312 6123 movsum:滑窗計算數值 eg步長是3 1236 2349 6 9 ... 按列求最大值 先列…

getdents64系統調用及示例

getdents64 函數詳解 1. 函數介紹 getdents64 是 Linux 系統中用于讀取目錄內容的底層系統調用。可以把這個函數想象成一個"目錄內容掃描儀"——它能夠高效地掃描目錄中的所有文件和子目錄,就像超市的掃描槍快速讀取商品條碼一樣。 與高級的目錄操作函數(如 rea…

HBuilder X打包發布微信小程序

一、獲取AppId 二、獲取微信小程序AppId 三、發行->微信小程序,調起微信開發者工具 四、點擊上傳,上傳至微信公眾平臺 五、微信公眾平臺查看版本管理 完結!!!

docker排查OOM

思路: 1.先從代碼程序上排查,線程池創建是否使用ThreadPoolExecutor,線程池各項設置是否合理。 任務對象是否釋放,網關是否需要限流。 2.服務器內存大小,cpu使用率,存儲空間大小,java程序啟動…

Web后端進階:springboot原理(面試多問)

1.配置優先級 3種配置文件: application.properties server.port8081application.yml server:port: 8082application.yaml server:port: 80822種外部屬性的配置(Java系統屬性、命令行參數): Java系統屬性配置 (格式: -Dkeyvalue) -Dserver.po…

第十天:字符菱形

每日一道C題&#xff1a;字符菱形 問題&#xff1a;給定一個字符&#xff0c;用它構造一個對角線長5個字符&#xff0c;傾斜放置的菱形。 要求&#xff1a;輸入只有一行&#xff0c; 包含一個字符&#xff1b;輸出該字符構成的菱形。 最基礎的做法&#xff1a; #include <io…

Qt 多線程編程最佳實踐

在現代軟件開發中&#xff0c;多線程編程是提升應用性能和響應性的關鍵技術。Qt 作為一個強大的跨平臺框架&#xff0c;提供了豐富的多線程支持&#xff0c;包括 QThread、QtConcurrent、信號槽機制等。本文將深入探討 Qt 多線程編程的最佳實踐&#xff0c;幫助開發者避免常見陷…

Photo Studio PRO 安卓版:專業級照片編輯的移動解決方案

Photo Studio PRO 安卓版是一款功能強大的專業級照片編輯應用&#xff0c;旨在為用戶提供豐富而強大的編輯工具和特效&#xff0c;幫助用戶輕松地對照片進行美化和修飾。無論是攝影愛好者還是專業攝影師&#xff0c;都能通過這款應用實現從基礎調整到高級合成的全流程編輯。 核…

2025高考志愿怎么填?張雪峰最新“保底”推薦來了!這4個專業專科也能拿高薪,畢業不愁!

專業選得好&#xff0c;就業跑不了&#xff01;2025年高考落幕&#xff0c;現在是決戰未來的關鍵時刻&#xff0c;選專業比選學校更重要&#xff01; 今天&#xff0c;學長就根據張雪峰老師多次力薦、再結合2024年就業大數據&#xff0c;給大家盤點4個緊缺人才專業&#xff0c…

C++初學者4——標準數據類型

先導&#xff1a; 目錄 一、整形 二、浮點型 &#xff01;保留指定小數位數 三、布爾類型 關系運算 邏輯運算 ?C邏輯運算四句口訣? 四、字符型 ASCll碼 C中的字符表示 字符比較 ASCII中的常用轉換 大小寫轉換 轉換成0~25 五、數據類型隱式轉換 ?1. 隱式轉…

HCIP的MGRE綜合實驗1

拓撲圖&#xff1a;二、實驗要求 1、R5為ISP&#xff0c;只能進行IP地址配置&#xff0c;其所有地址均配為公有Ip地址;2、R1和R5間使用PPP的PAP認證&#xff0c;R5為主認證方&#xff1b;R2與R5之間使用PPP的CHAP認證&#xff0c;R5為主認證方;R3與R5之間使用HDLC封裝;3、R2、R…

Go語言實戰案例-鏈表的實現與遍歷

在數據結構的世界中&#xff0c;鏈表&#xff08;Linked List&#xff09; 是一種經典的線性結構&#xff0c;它以靈活的插入與刪除能力著稱。鏈表不像數組那樣需要連續的內存空間&#xff0c;而是通過節點指針連接形成一條“鏈”。本篇我們將使用 Go 語言實現一個單向鏈表&…

C++常見的仿函數,預定義函數,functor,二元操作函數(對vector操作,加減乘除取余位運算等 )

C 標準庫在 <functional> 頭文件中為我們提供了一套非常方便的預定義函數對象&#xff08;也稱為“仿函數”或 “functor”&#xff09;&#xff0c;它們可以像變量一樣直接傳遞給 std::reduce 和其他標準算法。 你提到的 std::bit_or 和 std::multiplies 就是其中的成員…

【RH134 問答題】第 6 章 管理 SELinux 安全性

目錄SELinux 是如何保護資源的&#xff1f;什么是自由決定的訪問控制(DAC)&#xff1f;它有什么特點&#xff1f;什么是強制訪問控制(MAC)&#xff1f;它有什么特點&#xff1f;什么是 SELinux 上下文&#xff1f;setenforce 0 命令的作用是什么&#xff1f;定義一條 SELinux 文…

【MacOS】發展歷程

很高興為您詳細介紹 macOS 的詳細發展歷程。macOS 是蘋果公司開發的操作系統&#xff0c;用于 Mac 電腦、iPad 和 Apple TV 等設備。以下是 macos 的主要版本和發展歷程&#xff1a;1. System 7 (1991)發布日期&#xff1a;1991年特點&#xff1a;引入多任務處理功能。改進了拖…

智慧社區項目開發(二)——基于 JWT 的登錄驗證功能實現詳解

在 Web 應用中&#xff0c;登錄驗證是保障系統安全的核心環節。本文將結合具體接口文檔&#xff0c;詳細講解如何基于 JWT&#xff08;JSON Web Token&#xff09;實現登錄驗證功能&#xff0c;包括 JWT 配置、工具類封裝、登錄流程處理等關鍵步驟&#xff0c;幫助開發者快速理…

Jmeter的元件使用介紹:(七)后置處理器詳解

Jmeter的后置處理器主要用于取樣器執行后的提取數據操作。 Jmeter常用的后置處理器有:Json提取器、正則表達式提取器、邊界提取器、Beanshell后置處理器。此外還有Xpath提取器、CSS選擇器提取器等&#xff0c;由于這兩項多用前端頁面提取元素&#xff0c;目前的項目基本都是采…

Allure的安裝,在Pytest中的簡單使用以及生成測試報告

目錄 1.Allure的安裝 1--下載網址 2--選擇對應系統版本下載 3--配置Allure環境變量 4--驗證安裝是否成功 5--配置JAVAJDK的環境變量&#xff08;如果已經配置&#xff0c;可以忽視這一步&#xff09; 2.python中pytestAllure 1--python安裝Allure包 2--生成測試報告 1--使用pyt…