如何通过SSH高效连接CentOS服务器实现远程管理技巧?

更新于
2026-08-12 14:27:46
3阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

如何通过SSH远程管理技巧?

一、为什么要用 SSH 管理 CentOS 服务器?

SSH是 Linux 程序下最常用的远程管理协议。怎么说呢,它通过加密传输保障数据不被窃听。支持文件传输、端口转发等高级功能,是任何运维人员必备工具。

如何通过SSH远程管理技巧?

从痛点一来看。密码登录既麻烦又不安全,频繁输入账号密码极易泄露。

SSH 密钥认证可以彻底消除密码输入。让你一次登录后无需 验证,同时提高账号安全性。话说回来,

至于痛点二。默认22端口容易被暴力,导致频繁重置密码或被锁定账号。

SSH 默认端口为22,一旦暴露就会成为攻击目标。更改端口并结合防火墙规则可大幅减少风险。


二、准备工作:安装 & 启动 SSH 服务

  1. 安装 OpenSSH Server & Client:$ yum install -y openssh-server openssh-clients epel-release && yum update -y
  2. 开启开机自启并立即启动:$ systemctl enable --now sshd.service
  3. 确认服务状态:$ systemctl status sshd.service  ✔️ 若显示“active ”则已成功运行。
  4. 检查防火墙是否开放 SSH 端口: $ firewall-cmd --list-all | grep services | grep ssh  ✔️ 如未开放请执行 $ firewall-cmd --permanent --add-service=ssh && firewall-cmd --reload .
  5. 打开 SELinux 的 SSH 通道: $ sshfull_access on .
  6. .
    .
    .

三、生成 & 部署 SSH 密钥对 🔑 从服务器直接生成,或在本地机器上生成后推送至服务器。

Create Key Pair on Local Machine or Server Host:
1️⃣ 本地生成: $ ssh‑keygen –t rsa –b 4096 –C “” –f ~/.ssh/id_rsa‑centos‑prod . ➜ 查看公钥内容: $ cat ~/.ssh/id_rsa-centos-prod.pub
🔐 确认私钥权限: $ chmod 600 ~/.ssh/id_rsa-centos-prod
➜ 在目标 CentOS 主机上创建 .ssh 目录和 authorized_keys 文件: $ sudo mkdir –p ~/.ssh && sudo chmod 700 ~/.ssh $ sudo touch ~/.ssh/authorized_keys && sudo chmod 600 ~/.ssh/authorized_keys.
📤 将公钥拷贝到服务器: $ scp ~/.ssh/id_rsa-centos-prod.pub root@YOUR‑CENTOS‑IP:/tmp/ $ sudo cat /tmp/id_rsa-centos-prod.pub>> ~/.ssh/authorized_keys $ rm /tmp/id_rsa-centos-prod.pub
If you’re using Windows + PuTTY/PuTTYgen:
🪄 PuTTYgen 步骤:
  • Create new key → RSA → Bits in modulus → 4096 → Generate.
  • \t
  • "Save private key" 保存为 id_ppk‑centos.ppk.
  • \t
  • "Save public key" 保存为 id_pub‑centos.pub.
  • \t
  • "Copy to clipboard" → 粘贴到 `authorized_keys` 上面。
  • \t ⚠️ 如果你的 Windows 程序没有 OpenSSH 客户端。你可以直接使用 PuTTY 自带的 scp 命令 `pscp` 把公钥上传至服务器,接下来手动合并到 authorized_keys。","class":"js-markdown-body" }
AWS EC² 或 DigitalOcean 等云主机中自动注入公钥:
• 在创建实例时将上一步得到的 `` 内容粘贴到对应字段;• 云网站会自动把该公钥写入 `/home/ec₂-user/.bash_profile` 或 `/root/.bash_profile` 中的 `AuthorizedKeysFile`。这样就完成了无密码登陆配置,无需手动 scp 推送。老实说,💡 小技巧:如果你想让所有新建使用者也能使用同一套密钥。只需把 `.pub` 内容追加到每个使用者的 `~/.ssh/authorized_keys` 就行!🔒 建议随时检查权限,以免因 `chmod` 设置错误导致授权失效。
SFTP 简单文件传输示例:
bash sftp user@YOUR-CENTOS-IP sftp> put localfile.txt remote/path/to/file.txt sftp> get remote/path/to/file.txt localfile.txt 此方式无需额外配置,只要开启了 SSH 服务即可直接使用。
Lynx+OpenSSH + Cloudflare Tunnel 示例:​​​​​​​​​​​​​ ​​​ ​​​ ​​​ ​​​ ​​​ ​​​ ​​​ ​​​ ​​​             >

🎯 常见问题排查

问题 原因 排查步骤
❌ Password auntication disabled PasswordAuntication no 配置导致无法用密码登录 检查 /etc/ssh/sshd_config 并确认 PasswordAuntication yes
❌ HostKey verification failed 已知主机键变更导致警告 删除 ~/.ssh/known_hosts 对应行或执行 $ rm ~/.ssh/known_hosts*
*❌ Permission denied * 私钥权限过宽或未加入 authorized_keys $ chmod 600 ~/.ssh/id_* && cat id_*>> authorized_keys;chmod 600 authorized_keys
❌ Connection timed out 防火墙未开放对应端口或云主机安全组错误 检查 firewalld 与云网站安全组;不过,尝试 $ telnet YOUR-IP PORT;若失败请重新开放

四、安全加固实战

🔐 禁止 root 使用者远程登录 + 强化 PAM 配置

text sudo vim /etc/ssh/sshd_config

PermitRootLogin no # 禁止 root 登录,必须通过普通账户提权。 怎么说呢,PasswordAuntication no # 禁止明文密码。UsePAM yes # 开启 PAM 模块支持双因素等高级功能。不过,ChallengeResponseAuntication no

text sudo systemctl restart sshd.service

🔢 更改默认 SSH 监听端口

Port 22222 # 任意非标准高位随机数字;建议每次重装程序后更新,话说回来,

sudo firewall-cmd --permanent --add-port=22222/tcp;sudo firewall-cmd --reload;sudo systemctl restart sshd.service

🛡️ Fail²Ban 防暴力

bash yum install -y fail2ban iptables-services && chkconfig iptables on && service iptables start

如何通过SSH远程管理技巧?

cat /etc/fail2ban/jail.local enabled = true port = 22222 filter = sshell logpath = %s maxretry = 4 backend = auto findtime = 3600 destemail = action_ = EOF

service failzban restart

🕵️‍♂️ 双因素身份验证

  • 在 Ubuntu/Debian 上: bash apt-get install libpam-google-aunticator google-aunticator-libs pam-google-aunticator \ && echo "auth required pam_google_aunticator.so nullok">> /etc/pam.d/login \ && echo "auth required pam_google_aunticator.so nullok">> /etc/pam.d/password-auth \ && service passwd resetuser username # 重置使用者以触发 OTP 配置步骤。
  • 在 RHEL/CentOS 上类似操作即可。

五、多网站客户端快速连接教程

⚙️ macOS/Linux 原生终端

bash

$ ssh username@YOUR-CENTOS-IP # 使用默认22或已改好的自定义端口,例如: $ ssh -i ~/.ssh/id_rsa-centos-prod username@YOUR-CENTOS-IP -p22222

cat <'EOF'> ~/bin/centoss.sh \ #!/usr/bin/env bash \ USERNAME=${USERNAME:-root} \ IP=${IP:-$} \ PORT=${PORT:-22222} \ KEY=${KEY:-~/.ssh/idrsa-centos-prod} \ exec ssh -i "$KEY" "$USERNAME@$IP" -p "$PORT" EOF \ chmod +x ~/bin/centoss.sh \ // 用法: centoss.sh myuser myip

🖥️ Windows 使用 PowerShell+OpenSSH

powershell

Get-WindowsCapability –Online –Name OpenSSH.Client~~~~0.0.1.0 | Add-WindowsCapability –Online

powershell.exe $env:SHELL=/usr/bin/bash;bash -c 'mkdir ~.ssh;cd ~.scp,shasum';# 接下来按照前述 mac/linux 的方式进行。

New-ItemProperty HKCU:\Software\OpenSSH\DefaultKeyPath "ided25519" ` ValuePath "~.openssl\ided25519"

Start-Process cmd.exe "/c \"echo hello\""

💻 PuTTY 客户端操作流程

1️⃣ 下载并解压 PuTTY . ✅ 打开 PuTTY → Session → Host Name 为 。Port 为自定义 22222.

⚙️ Connection → SSH → Auth → 浏览私钥文件 .

🔒 点击 Open 后首次连接会弹出主机指纹确认框,请选择 Yes 并记住指纹哈希。


六、日常维护 & 高级技巧

📦 升级 OpenSSH 至最新版以获取新功能与修复漏洞:

bash yum update openssh* # 官方仓库已包含最新补丁;若需源代码编译,请自行下载 tarball。怎么说呢,

🧩 使用 ProxyJump 一键跳转多台中间主机:

bash export SSHPROXYUSER=userproxy # 中间堡垒机使用者名 export SSHPROXYHOST=$

$ ssh -J $SSHPROXYHOST targetuser target_ip

alias sgt='function _{ eval $}' }

📊 定期审计授权键列表:

bash for u in $;do echo "=== $u ===";cat ~/$u/.ssh/*.pub || true;done> ~/allkeys.log


七、 & 行动计划

  • 确保所有节点都已开启 SSH 服务,并通过 firewall-cmd 开放相应监听端口。
  • 采用 RSA4096 或 ED25519 密钥对,并禁用明文密码登陆。话说回来,
  • 更换非标准高位随机监听端口。并结合 Fail²Ban 增加防御。
  • 在各类客户端提前完成密钥导入和简化脚本,为日常运维提供“一键连通”。说起来,
  • 🚀 最终你可以把以上步骤写成剧本。用 Ansible 自动化完成批量部署,从而真正做到“一键部署、一键接入、一键运维”。

只要按上述步骤操作,即可让你的 CentOS 集群从 “一次性输入账号密码”的脆弱状态跃升为 “无懈可击”的高效管理网站!不过,

标签:CentOS

如何通过SSH远程管理技巧?

一、为什么要用 SSH 管理 CentOS 服务器?

SSH是 Linux 程序下最常用的远程管理协议。怎么说呢,它通过加密传输保障数据不被窃听。支持文件传输、端口转发等高级功能,是任何运维人员必备工具。

如何通过SSH远程管理技巧?

从痛点一来看。密码登录既麻烦又不安全,频繁输入账号密码极易泄露。

SSH 密钥认证可以彻底消除密码输入。让你一次登录后无需 验证,同时提高账号安全性。话说回来,

至于痛点二。默认22端口容易被暴力,导致频繁重置密码或被锁定账号。

SSH 默认端口为22,一旦暴露就会成为攻击目标。更改端口并结合防火墙规则可大幅减少风险。


二、准备工作:安装 & 启动 SSH 服务

  1. 安装 OpenSSH Server & Client:$ yum install -y openssh-server openssh-clients epel-release && yum update -y
  2. 开启开机自启并立即启动:$ systemctl enable --now sshd.service
  3. 确认服务状态:$ systemctl status sshd.service  ✔️ 若显示“active ”则已成功运行。
  4. 检查防火墙是否开放 SSH 端口: $ firewall-cmd --list-all | grep services | grep ssh  ✔️ 如未开放请执行 $ firewall-cmd --permanent --add-service=ssh && firewall-cmd --reload .
  5. 打开 SELinux 的 SSH 通道: $ sshfull_access on .
  6. .
    .
    .

三、生成 & 部署 SSH 密钥对 🔑 从服务器直接生成,或在本地机器上生成后推送至服务器。

Create Key Pair on Local Machine or Server Host:
1️⃣ 本地生成: $ ssh‑keygen –t rsa –b 4096 –C “” –f ~/.ssh/id_rsa‑centos‑prod . ➜ 查看公钥内容: $ cat ~/.ssh/id_rsa-centos-prod.pub
🔐 确认私钥权限: $ chmod 600 ~/.ssh/id_rsa-centos-prod
➜ 在目标 CentOS 主机上创建 .ssh 目录和 authorized_keys 文件: $ sudo mkdir –p ~/.ssh && sudo chmod 700 ~/.ssh $ sudo touch ~/.ssh/authorized_keys && sudo chmod 600 ~/.ssh/authorized_keys.
📤 将公钥拷贝到服务器: $ scp ~/.ssh/id_rsa-centos-prod.pub root@YOUR‑CENTOS‑IP:/tmp/ $ sudo cat /tmp/id_rsa-centos-prod.pub>> ~/.ssh/authorized_keys $ rm /tmp/id_rsa-centos-prod.pub
If you’re using Windows + PuTTY/PuTTYgen:
🪄 PuTTYgen 步骤:
  • Create new key → RSA → Bits in modulus → 4096 → Generate.
  • \t
  • "Save private key" 保存为 id_ppk‑centos.ppk.
  • \t
  • "Save public key" 保存为 id_pub‑centos.pub.
  • \t
  • "Copy to clipboard" → 粘贴到 `authorized_keys` 上面。
  • \t ⚠️ 如果你的 Windows 程序没有 OpenSSH 客户端。你可以直接使用 PuTTY 自带的 scp 命令 `pscp` 把公钥上传至服务器,接下来手动合并到 authorized_keys。","class":"js-markdown-body" }
AWS EC² 或 DigitalOcean 等云主机中自动注入公钥:
• 在创建实例时将上一步得到的 `` 内容粘贴到对应字段;• 云网站会自动把该公钥写入 `/home/ec₂-user/.bash_profile` 或 `/root/.bash_profile` 中的 `AuthorizedKeysFile`。这样就完成了无密码登陆配置,无需手动 scp 推送。老实说,💡 小技巧:如果你想让所有新建使用者也能使用同一套密钥。只需把 `.pub` 内容追加到每个使用者的 `~/.ssh/authorized_keys` 就行!🔒 建议随时检查权限,以免因 `chmod` 设置错误导致授权失效。
SFTP 简单文件传输示例:
bash sftp user@YOUR-CENTOS-IP sftp> put localfile.txt remote/path/to/file.txt sftp> get remote/path/to/file.txt localfile.txt 此方式无需额外配置,只要开启了 SSH 服务即可直接使用。
Lynx+OpenSSH + Cloudflare Tunnel 示例:​​​​​​​​​​​​​ ​​​ ​​​ ​​​ ​​​ ​​​ ​​​ ​​​ ​​​ ​​​             >

🎯 常见问题排查

问题 原因 排查步骤
❌ Password auntication disabled PasswordAuntication no 配置导致无法用密码登录 检查 /etc/ssh/sshd_config 并确认 PasswordAuntication yes
❌ HostKey verification failed 已知主机键变更导致警告 删除 ~/.ssh/known_hosts 对应行或执行 $ rm ~/.ssh/known_hosts*
*❌ Permission denied * 私钥权限过宽或未加入 authorized_keys $ chmod 600 ~/.ssh/id_* && cat id_*>> authorized_keys;chmod 600 authorized_keys
❌ Connection timed out 防火墙未开放对应端口或云主机安全组错误 检查 firewalld 与云网站安全组;不过,尝试 $ telnet YOUR-IP PORT;若失败请重新开放

四、安全加固实战

🔐 禁止 root 使用者远程登录 + 强化 PAM 配置

text sudo vim /etc/ssh/sshd_config

PermitRootLogin no # 禁止 root 登录,必须通过普通账户提权。 怎么说呢,PasswordAuntication no # 禁止明文密码。UsePAM yes # 开启 PAM 模块支持双因素等高级功能。不过,ChallengeResponseAuntication no

text sudo systemctl restart sshd.service

🔢 更改默认 SSH 监听端口

Port 22222 # 任意非标准高位随机数字;建议每次重装程序后更新,话说回来,

sudo firewall-cmd --permanent --add-port=22222/tcp;sudo firewall-cmd --reload;sudo systemctl restart sshd.service

🛡️ Fail²Ban 防暴力

bash yum install -y fail2ban iptables-services && chkconfig iptables on && service iptables start

如何通过SSH远程管理技巧?

cat /etc/fail2ban/jail.local enabled = true port = 22222 filter = sshell logpath = %s maxretry = 4 backend = auto findtime = 3600 destemail = action_ = EOF

service failzban restart

🕵️‍♂️ 双因素身份验证

  • 在 Ubuntu/Debian 上: bash apt-get install libpam-google-aunticator google-aunticator-libs pam-google-aunticator \ && echo "auth required pam_google_aunticator.so nullok">> /etc/pam.d/login \ && echo "auth required pam_google_aunticator.so nullok">> /etc/pam.d/password-auth \ && service passwd resetuser username # 重置使用者以触发 OTP 配置步骤。
  • 在 RHEL/CentOS 上类似操作即可。

五、多网站客户端快速连接教程

⚙️ macOS/Linux 原生终端

bash

$ ssh username@YOUR-CENTOS-IP # 使用默认22或已改好的自定义端口,例如: $ ssh -i ~/.ssh/id_rsa-centos-prod username@YOUR-CENTOS-IP -p22222

cat <'EOF'> ~/bin/centoss.sh \ #!/usr/bin/env bash \ USERNAME=${USERNAME:-root} \ IP=${IP:-$} \ PORT=${PORT:-22222} \ KEY=${KEY:-~/.ssh/idrsa-centos-prod} \ exec ssh -i "$KEY" "$USERNAME@$IP" -p "$PORT" EOF \ chmod +x ~/bin/centoss.sh \ // 用法: centoss.sh myuser myip

🖥️ Windows 使用 PowerShell+OpenSSH

powershell

Get-WindowsCapability –Online –Name OpenSSH.Client~~~~0.0.1.0 | Add-WindowsCapability –Online

powershell.exe $env:SHELL=/usr/bin/bash;bash -c 'mkdir ~.ssh;cd ~.scp,shasum';# 接下来按照前述 mac/linux 的方式进行。

New-ItemProperty HKCU:\Software\OpenSSH\DefaultKeyPath "ided25519" ` ValuePath "~.openssl\ided25519"

Start-Process cmd.exe "/c \"echo hello\""

💻 PuTTY 客户端操作流程

1️⃣ 下载并解压 PuTTY . ✅ 打开 PuTTY → Session → Host Name 为 。Port 为自定义 22222.

⚙️ Connection → SSH → Auth → 浏览私钥文件 .

🔒 点击 Open 后首次连接会弹出主机指纹确认框,请选择 Yes 并记住指纹哈希。


六、日常维护 & 高级技巧

📦 升级 OpenSSH 至最新版以获取新功能与修复漏洞:

bash yum update openssh* # 官方仓库已包含最新补丁;若需源代码编译,请自行下载 tarball。怎么说呢,

🧩 使用 ProxyJump 一键跳转多台中间主机:

bash export SSHPROXYUSER=userproxy # 中间堡垒机使用者名 export SSHPROXYHOST=$

$ ssh -J $SSHPROXYHOST targetuser target_ip

alias sgt='function _{ eval $}' }

📊 定期审计授权键列表:

bash for u in $;do echo "=== $u ===";cat ~/$u/.ssh/*.pub || true;done> ~/allkeys.log


七、 & 行动计划

  • 确保所有节点都已开启 SSH 服务,并通过 firewall-cmd 开放相应监听端口。
  • 采用 RSA4096 或 ED25519 密钥对,并禁用明文密码登陆。话说回来,
  • 更换非标准高位随机监听端口。并结合 Fail²Ban 增加防御。
  • 在各类客户端提前完成密钥导入和简化脚本,为日常运维提供“一键连通”。说起来,
  • 🚀 最终你可以把以上步骤写成剧本。用 Ansible 自动化完成批量部署,从而真正做到“一键部署、一键接入、一键运维”。

只要按上述步骤操作,即可让你的 CentOS 集群从 “一次性输入账号密码”的脆弱状态跃升为 “无懈可击”的高效管理网站!不过,

标签:CentOS