首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Ubuntu SSH 完整實戰手冊:遠程登錄、SCP/Rsync 傳文件、非標準端口、SFTP、服務端搭建

     編輯:Java 綜合教學

Ubuntu SSH 完整實戰手冊:遠程登錄、SCP/Rsync 傳文件、非標準端口、SFTP、服務端搭建

SSH 是 Linux 運維的生命線。本文匯總 Ubuntu 環境下 SSH 客戶端/服務端的高頻操作:密鑰登錄、多跳代理、SCP/Rsync 參數詳解、非 22 端口適配、SFTP 交互與服務端硬化配置。

一、客戶端核心命令速查

場景命令範例關鍵參數
密碼登錄ssh user@192.168.1.100-p 指定端口
密鑰登錄ssh -i ~/.ssh/id_rsa user@host-o IdentitiesOnly=yes
SCP 上傳scp -r local_dir user@host:/remote/path-P 端口 (大寫), -r 遞歸
SCP 下載scp -r user@host:/remote/path ./local-p 保留時間戳/權限
Rsync 同步上傳rsync -avz --delete -e "ssh -p 2222" local/ user@host:/remote/-a 歸檔, -z 壓縮, --delete 鏡像
Rsync 下載rsync -avz -e "ssh -p 2222" user@host:/remote/ local/同步遠程→本地
SFTP 交互sftp -oPort=2222 user@host進入交互模式 put/get/ls/cd
非標準端口ssh -p 2222 user@host / scp -P 2222 ...注意 ssh -p 小寫,scp -P 大寫

二、服務端搭建與硬化 (Ubuntu)

# 1. 安裝
sudo apt update && sudo apt install -y openssh-server

# 2. 啟用並驗證
sudo systemctl enable --now ssh
ss -ltnp | grep :22  # 應看到 LISTEN

# 3. 核心硬化配置 /etc/ssh/sshd_config
Port 2222                    # 修改默認端口
PermitRootLogin no           # 禁用 root 登錄
PubkeyAuthentication yes     # 僅允許密鑰
PasswordAuthentication no    # 禁用密碼
MaxAuthTries 3               # 限制嘗試次數
ClientAliveInterval 300      # 保活防斷連
AllowUsers deploy admin      # 白名單用戶

# 4. 重載生效
sudo systemctl reload ssh

三、密鑰生成與分發

# 客戶端生成
ssh-keygen -t ed25519 -C "user@host"
# 複製公鑰到服務端
ssh-copy-id -p 2222 user@host
# 或手動追加 ~/.ssh/authorized_keys (權限 600)

四、多跳代理

# SSH 配置 ~/.ssh/config
Host bastion
    HostName 10.0.0.1
    User admin
    Port 2222
Host target
    HostName 192.168.10.5
    User deploy
    ProxyJump bastion
# 直連目標
ssh target

五、常見故障排查

  • Permission denied:檢查 ~/.ssh (700)、authorized_keys (600)、家目錄 (755) 權限
  • Connection refused:服務未啟動、防火牆攔截、端口不匹配
  • Host key verification failed:ssh-keygen -R hostname 清除 known_hosts 舊記錄
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved