Linux 搭建SSH服务器
一、安装OpenSSH Server
在Linux系统中,SSH服务通常由OpenSSH软件包提供,以下是安装步骤:
1、Debian/Ubuntu系统:
sudo apt-get update sudo apt-get install openssh-server
2、CentOS/RHEL系统:
sudo yum install openssh-server
3、Fedora系统:
sudo dnf install openssh-server
4、Arch Linux系统:
sudo pacman -S openssh
二、配置SSH服务
SSH配置文件位于/etc/ssh/sshd_config
,使用文本编辑器(如vi或nano)打开此文件进行编辑:
sudo nano /etc/ssh/sshd_config
关键配置项说明:
配置项 | 默认值 | 说明 |
Port | 22 | SSH服务监听的端口,可以修改为其他未占用的端口。 |
ListenAddress | 0.0.0.0 | SSH服务的监听地址,可以是具体的IPv4地址或IPv6地址。 |
PermitRootLogin | yes | 是否允许root用户远程登录,建议设置为no以提高安全性。 |
PubkeyAuthentication | yes | 启用公钥认证,提高安全性。 |
PasswordAuthentication | yes | 启用密码认证,如果不需要可以设置为no。 |
AuthorizedKeysFile | .ssh/authorized_keys | 公钥文件路径,用于公钥认证。 |
示例配置:
Port 22 ListenAddress 0.0.0.0 PermitRootLogin no PubkeyAuthentication yes PasswordAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
三、启动和使能SSH服务
1、启动SSH服务:
sudo systemctl start sshd
2、设置开机启动:
sudo systemctl enable sshd
3、检查服务状态:
sudo systemctl status sshd
四、防火墙配置
确保防火墙允许SSH流量通过,在使用ufw
的系统中:
sudo ufw allow 22/tcp sudo ufw enable
五、生成SSH密钥对(可选)
为了实现无密码登录,可以生成SSH密钥对,并将公钥复制到服务器的~/.ssh/authorized_keys
文件中。
1、生成密钥对:
ssh-keygen
按提示操作,通常直接回车即可。
2、将公钥复制到服务器:
ssh-copy-id user@server_ip
输入用户密码完成公钥传输。
六、测试SSH连接
使用以下命令测试SSH连接:
ssh user@server_ip
七、安全加固建议(可选)
1、更改默认端口: 修改/etc/ssh/sshd_config
中的Port参数,避免使用默认的22端口。
2、禁止root登录: 将PermitRootLogin
设置为no
。
3、仅允许特定用户登录: 通过AllowUsers
或AllowGroups
指令限制登录用户。
4、使用Fail2Ban: 防止暴力破解,记录多次失败尝试的IP地址并临时禁止其访问。
5、定期更新: 保持系统和OpenSSH软件的最新版本,及时应用安全补丁。
八、常见问题与解答(FAQs)
Q1: 如何更改SSH默认端口?
A1: 编辑/etc/ssh/sshd_config
文件,找到Port
配置项,将其修改为所需的端口号,然后重启SSH服务,记得在防火墙中开放新的端口。
Q2: SSH连接被拒绝怎么办?
A2: 首先检查服务器的SSH服务是否正在运行,使用systemctl status sshd
查看状态,然后确认防火墙规则是否允许SSH流量,最后检查/etc/ssh/sshd_config
中的配置是否正确,特别是ListenAddress
和Port
配置项。