在CentOS虚拟机上设置SSH服务,可以按照以下步骤进行:
首先,确保你的CentOS系统是最新的。你可以使用以下命令更新系统:
sudo yum update -y
然后,安装OpenSSH服务器:
sudo yum install openssh-server -y
安装完成后,启动SSH服务并设置为开机自启:
sudo systemctl start sshd
sudo systemctl enable sshd
确保SSH服务正在运行:
sudo systemctl status sshd
你应该看到类似以下的输出,表示SSH服务正在运行:
sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since ...
SSH的配置文件位于 /etc/ssh/sshd_config
。你可以使用文本编辑器(如 vi
或 nano
)来编辑这个文件:
sudo vi /etc/ssh/sshd_config
在配置文件中,你可以进行各种设置,例如:
修改默认端口:如果你想更改SSH的默认端口(22),可以找到 #Port 22
这一行,去掉注释符号 #
,并将端口号改为你想要的任何数字,例如:
Port 2222
禁用root登录:为了增加服务器的安全性,建议禁用root用户直接登录。找到 PermitRootLogin
这一行,设置为 no
:
PermitRootLogin no
限制登录用户:如果你只希望特定的用户能够通过SSH登录服务器,你可以使用以下配置。在配置文件的末尾添加以下行来允许特定用户:
AllowUsers user1 user2
将 user1
和 user2
替换为你希望允许的用户的用户名。
启用公钥认证:为了提高安全性,建议使用密钥认证而非密码认证。在客户端生成密钥对(公钥和私钥):
ssh-keygen
将公钥添加到服务器上的 ~/.ssh/authorized_keys
文件中。
修改 /etc/ssh/sshd_config
,将 PasswordAuthentication
设置为 no
(可选,取决于是否完全依赖密钥认证):
PasswordAuthentication no
修改配置后,重启SSH服务使更改生效:
sudo systemctl reload sshd
如果你的CentOS系统启用了防火墙(如 firewalld
),你需要允许SSH流量通过防火墙:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
现在,你可以从另一台机器上测试SSH连接到你的CentOS服务器。使用以下命令:
ssh username@server_ip_address -p port_number
其中 username
是登录到SSH服务器的用户名,server_ip_address
是服务器的IP地址,port_number
是SSH服务器监听的端口号。
例如:
ssh your_username@your_server_ip -p 2222