centos

如何用CentOS SSH远程管理服务器

小樊
48
2025-06-08 01:41:31
栏目: 云计算

使用 CentOS 通过 SSH 远程管理服务器是一个常见且有效的方法。以下是详细的步骤指南,帮助你设置和使用 SSH 进行远程管理:

一、准备工作

1. 确保服务器上已安装并运行 SSH 服务

大多数 CentOS 系统默认已经安装了 OpenSSH 服务器。你可以通过以下命令检查 SSH 服务状态:

sudo systemctl status sshd

如果服务未启动,可以使用以下命令启动它:

sudo systemctl start sshd

要确保 SSH 服务在系统启动时自动运行,执行:

sudo systemctl enable sshd

2. 配置防火墙允许 SSH 连接

CentOS 7 及以上版本使用 firewalld 作为默认防火墙。你需要允许 SSH 端口(默认是 22)的流量。

sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

3. 获取服务器的 IP 地址

你可以通过以下命令获取服务器的公网 IP 地址:

ip addr show eth0 | grep 'inet ' | awk '{print $2}' | cut -f1 -d'/'

(请将 eth0 替换为你的实际网络接口名称,如 ens33 等)

二、从本地计算机连接到 CentOS 服务器

1. 使用终端或 SSH 客户端

你可以使用 Linux 终端、macOS 终端或第三方 SSH 客户端(如 PuTTY)来连接服务器。

在 Linux 或 macOS 终端中连接:

打开终端,运行以下命令:

ssh username@server_ip

例如:

ssh root@192.168.1.100

首次连接时,系统会提示你确认服务器的指纹,输入 yes 并回车继续。

使用 PuTTY 连接(适用于 Windows):

  1. 下载并安装 PuTTY
  2. 打开 PuTTY,输入服务器的 IP 地址和端口号(默认 22)。
  3. 点击“Open”开始连接。
  4. 输入用户名和密码进行登录。

三、配置 SSH 以增强安全性

1. 更改默认 SSH 端口

为了减少自动化攻击的风险,可以更改 SSH 的默认端口(22)。

  1. 编辑 SSH 配置文件:

    sudo vi /etc/ssh/sshd_config
    
  2. 找到并修改以下行,将 Port 设置为你选择的端口号(例如 2222):

    Port 2222
    
  3. 保存并退出编辑器(在 vi 中按 Esc,然后输入 :wq 并回车)。

  4. 重启 SSH 服务以应用更改:

    sudo systemctl restart sshd
    
  5. 更新防火墙规则以允许新端口:

    sudo firewall-cmd --permanent --add-port=2222/tcp
    sudo firewall-cmd --reload
    

2. 禁用 root 直接登录

为了提高安全性,建议禁止 root 用户直接通过 SSH 登录,而是使用普通用户登录后再切换到 root。

  1. 编辑 SSH 配置文件:

    sudo vi /etc/ssh/sshd_config
    
  2. 找到并修改以下行:

    PermitRootLogin no
    
  3. 保存并退出编辑器。

  4. 重启 SSH 服务:

    sudo systemctl restart sshd
    

3. 使用公钥认证

使用 SSH 密钥对进行身份验证比密码更安全。以下是如何设置公钥认证的步骤:

在本地计算机上生成 SSH 密钥对(如果尚未生成)

在终端中运行:

ssh-keygen -t rsa -b 4096

按照提示操作,通常会生成 ~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub(公钥)。

将公钥复制到服务器

使用 ssh-copy-id 命令将公钥复制到服务器的 authorized_keys 文件中:

ssh-copy-id -p 2222 username@server_ip

系统会提示你输入密码,成功后,你的公钥将被添加到服务器的 ~/.ssh/authorized_keys 文件中。

使用 SSH 密钥登录

连接时无需输入密码:

ssh -p 2222 username@server_ip

四、管理服务器

一旦成功连接,你可以像在本地终端一样执行各种命令来管理服务器。例如:

五、其他有用的 SSH 配置和技巧

1. 使用 screentmux 进行会话管理

这些工具允许你在 SSH 会话中断时保持终端会话的活跃。

安装 screen

sudo yum install screen -y

启动新的 screen 会话:

screen -S session_name

要分离会话,按 Ctrl+A 然后按 D。重新连接会话:

screen -r session_name

2. 配置 SSH 保持连接

有时网络不稳定可能导致 SSH 连接中断。你可以在 sshd_config 中配置以下选项以保持连接:

ClientAliveInterval 60
ClientAliveCountMax 3

修改后,重启 SSH 服务:

sudo systemctl restart sshd

3. 限制允许 SSH 登录的用户

编辑 /etc/hosts.deny/etc/hosts.allow 文件,控制哪些主机可以访问 SSH。

例如,只允许特定 IP 访问:

# /etc/hosts.deny
sshd: ALL

# /etc/hosts.allow
sshd: 192.168.1.50 192.168.1.100

六、总结

通过以上步骤,你可以安全地使用 CentOS 进行远程服务器管理。确保采取最佳实践,如使用 SSH 密钥认证、更改默认端口、禁用 root 直接登录等,以提高服务器的安全性。如果在配置过程中遇到问题,可以查看 SSH 服务日志以获取更多信息:

sudo tail -f /var/log/secure

希望这些信息对你有所帮助!

0
看了该问题的人还看了