1. 安装OpenSSH服务
要在Linux系统上配置SSH远程连接,首先需要安装OpenSSH服务。OpenSSH是一个开源的SSH实现,支持远程登录和文件传输。
在大多数Linux发行版中,可以使用包管理器安装OpenSSH。以Debian或Ubuntu系统为例,可以使用以下命令安装:
sudo apt-get update
sudo apt-get install openssh-server
安装完成后,OpenSSH服务将自动启动。可以使用以下命令检查服务状态:
systemctl status sshd
如果服务正在运行,应该看到类似于下面的输出:
● sshd.service - OpenSSH server daemon
Loaded: loaded (/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-07-01 10:00:00 UTC; 10s ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 12345 (sshd)
Tasks: 1 (limit: 123)
CGroup: /system.slice/sshd.service
└─12345 /usr/sbin/sshd -D
这表明OpenSSH服务已经成功安装并正在运行。
2. 配置防火墙
为了允许SSH连接进入Linux系统,需要配置防火墙以允许SSH流量通过。大多数Linux系统使用iptables或nftables作为防火墙管理工具。
2.1 iptables
如果使用iptables作为防火墙管理工具,可以使用以下命令允许SSH流量:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4
这将在iptables规则中添加一条允许TCP端口22的规则,并将规则保存到/etc/iptables/rules.v4文件中。
要持久保存iptables规则,可以使用以下命令:
sudo apt-get install iptables-persistent
安装完成后,iptables规则将在系统启动时自动加载。
2.2 nftables
如果使用nftables作为防火墙管理工具,可以使用以下命令允许SSH流量:
sudo nft add rule ip filter input tcp dport 22 accept
sudo systemctl enable nftables
sudo systemctl start nftables
这将添加一条允许TCP端口22的规则,并启用nftables服务。
3. 配置SSH服务
配置SSH服务可以定制SSH连接的行为和安全性设置。
3.1 修改SSH配置文件
SSH的配置文件位于/etc/ssh/sshd_config。可以使用文本编辑器(如vi或nano)打开此文件,并根据需要进行修改。
以下是一些常见的SSH配置选项:
Port:SSH服务监听的端口号。默认为22,可以修改为其他非常用端口号以增加安全性。
PermitRootLogin:是否允许以root用户登录SSH。建议禁止root登录以增加安全性。
PasswordAuthentication:是否允许使用密码进行身份验证。建议禁止密码身份验证,并使用公钥身份验证。
PubkeyAuthentication:是否允许使用公钥进行身份验证。建议启用此选项。
AllowUsers:限制允许使用SSH登录的用户列表。可以使用用户名或用户名的模式匹配。
修改完成后,保存文件并退出编辑器。
3.2 重启SSH服务
在修改完SSH配置文件后,需要重新启动SSH服务以使更改生效。可以使用以下命令重启SSH服务:
sudo systemctl restart sshd
现在,SSH服务已根据配置文件进行了相应的修改和重启。
4. 连接到SSH服务器
配置完SSH服务后,可以使用SSH客户端连接到远程Linux系统。
在Linux系统上,可以使用以下命令连接到SSH服务器:
ssh username@remote_host
其中,username是远程Linux系统上的用户名,remote_host是远程Linux系统的主机名或IP地址。
如果配置了非默认的SSH端口号,可以使用“-p”选项指定端口号: