在Linux中,SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络上安全地进行远程登录和数据传输
使用密钥对进行身份验证: 为了限制访问权限,建议使用SSH密钥对进行身份验证,而不是使用密码。这样可以避免密码泄露导致的未经授权的访问。要设置密钥对,请按照以下步骤操作:
a. 在本地计算机上生成一个SSH密钥对(如果尚未生成):
ssh-keygen -t rsa -b 2048
b. 将公钥(默认为~/.ssh/id_rsa.pub
)复制到远程服务器的~/.ssh/authorized_keys
文件中。你可以使用以下命令将公钥追加到远程服务器的授权密钥文件中:
ssh-copy-id user@remote_host
c. 确保远程服务器上的SSH目录和文件具有正确的权限。通常,建议将目录权限设置为700,将文件权限设置为600:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
配置SSH服务器以限制访问:
编辑远程服务器上的SSH配置文件(通常位于/etc/ssh/sshd_config
),并根据需要添加或修改以下设置:
a. 限制允许通过SSH连接的客户端IP地址:
AllowUsers user1@example.com user2@example.com
b. 限制特定端口的SSH访问:
Port 2222
c. 禁用root远程登录:
PermitRootLogin no
d. 启用公钥身份验证:
PasswordAuthentication no
e. 设置会话超时时间:
ClientAliveInterval 300
ClientAliveCountMax 0
f. 限制并发连接数:
MaxStartups 10
g. 启用TCP Wrapping(防止TCP SYN Flood攻击):
UseTCPWrappers yes
在对SSH配置文件进行更改后,请重新启动SSH服务以使更改生效:
sudo systemctl restart sshd
通过以上步骤,你可以限制Linux SSH访问权限,提高系统安全性。