使用 CentOS 通过 SSH 远程管理服务器是一个常见且有效的方法。以下是详细的步骤指南,帮助你设置和使用 SSH 进行远程管理:
大多数 CentOS 系统默认已经安装了 OpenSSH 服务器。你可以通过以下命令检查 SSH 服务状态:
sudo systemctl status sshd
如果服务未启动,可以使用以下命令启动它:
sudo systemctl start sshd
要确保 SSH 服务在系统启动时自动运行,执行:
sudo systemctl enable sshd
CentOS 7 及以上版本使用 firewalld
作为默认防火墙。你需要允许 SSH 端口(默认是 22)的流量。
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
你可以通过以下命令获取服务器的公网 IP 地址:
ip addr show eth0 | grep 'inet ' | awk '{print $2}' | cut -f1 -d'/'
(请将 eth0
替换为你的实际网络接口名称,如 ens33
等)
你可以使用 Linux 终端、macOS 终端或第三方 SSH 客户端(如 PuTTY)来连接服务器。
打开终端,运行以下命令:
ssh username@server_ip
username
是你在服务器上的用户名。server_ip
是服务器的 IP 地址。例如:
ssh root@192.168.1.100
首次连接时,系统会提示你确认服务器的指纹,输入 yes
并回车继续。
为了减少自动化攻击的风险,可以更改 SSH 的默认端口(22)。
编辑 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
找到并修改以下行,将 Port
设置为你选择的端口号(例如 2222):
Port 2222
保存并退出编辑器(在 vi
中按 Esc
,然后输入 :wq
并回车)。
重启 SSH 服务以应用更改:
sudo systemctl restart sshd
更新防火墙规则以允许新端口:
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
为了提高安全性,建议禁止 root 用户直接通过 SSH 登录,而是使用普通用户登录后再切换到 root。
编辑 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
找到并修改以下行:
PermitRootLogin no
保存并退出编辑器。
重启 SSH 服务:
sudo systemctl restart sshd
使用 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
-p 2222
指定使用的 SSH 端口(如果已更改)。username
是服务器上的用户名。server_ip
是服务器的 IP 地址。系统会提示你输入密码,成功后,你的公钥将被添加到服务器的 ~/.ssh/authorized_keys
文件中。
连接时无需输入密码:
ssh -p 2222 username@server_ip
一旦成功连接,你可以像在本地终端一样执行各种命令来管理服务器。例如:
查看系统信息:
uname -a
更新系统:
sudo yum update -y
安装软件包:
sudo yum install package_name -y
查看日志文件:
sudo tail -f /var/log/messages
screen
或 tmux
进行会话管理这些工具允许你在 SSH 会话中断时保持终端会话的活跃。
安装 screen
:
sudo yum install screen -y
启动新的 screen
会话:
screen -S session_name
要分离会话,按 Ctrl+A
然后按 D
。重新连接会话:
screen -r session_name
有时网络不稳定可能导致 SSH 连接中断。你可以在 sshd_config
中配置以下选项以保持连接:
ClientAliveInterval 60
ClientAliveCountMax 3
ClientAliveInterval
设置检测间隔(秒)。ClientAliveCountMax
设置允许的最大无响应次数。修改后,重启 SSH 服务:
sudo systemctl restart sshd
编辑 /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
希望这些信息对你有所帮助!