我正在尝试将对现有 sftp 服务器的访问限制为用户,以允许其仅从 IP 地址登录,但不起作用。就我而言,我尝试允许用户 some_user 仅从 192.168.12.10 登录。
这是我的完整 sshd_config 文件:
Port 22
Protocol 2
SyslogFacility AUTHPRIV
RSAAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
GSSAPICleanupCredentials yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding no
Subsystem sftp /usr/libexec/openssh/sftp-server
Ciphers aes128-ctr,aes192-ctr,aes256-ctr
MACs hmac-sha1,[email protected],hmac-ripemd160
KerberosAuthentication no
PubkeyAuthentication yes
UsePAM yes
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
GSSAPIAuthentication yes
ChallengeResponseAuthentication yes
AuthorizedKeysCommandUser nobody
Match User some_user, Address !192.168.12.10
PasswordAuthentication no
PubkeyAuthentication yes
Match User some_user, Address 192.168.12.10
ChrootDirectory /home/some_user/
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
我从这里获得了此配置(匹配用户部分)页。
但它不起作用:我仍然能够从任何 IP 地址登录。我也尝试了此建议的方法线但无济于事。
我是否遗漏了什么?
感谢您的关注。
此致。
答案1
该问题的解决方案是使用更简单的解决方案,即添加以下配置行:
AllowUsers [email protected] otherid1 otherid2
这some_user
仅允许来自192.168.12.10
,以及 otherid1、otherid2 来自任何地方。
旧答案
也许有一种更简单、更安全的方法可以将 SSH 访问限制为仅限机器上的某些 IP 地址。
/etc/hosts.allow
sshd,sshdfwd-X11: 192.168.12.10
/etc/hosts.deny
要拒绝不在列出的 IP 地址中的任何人的 SSH 连接:
sshd,sshdfwd-X11:ALL
通过用户名限制 SSH 访问(可选)
编辑/etc/ssh/sshd_config
并添加以下内容:
PermitRootLogin no
AllowUsers user1 user2 user3 etc
PasswordAuthentication yes
重新启动 ssh 守护进程以使这些更改生效
service sshd restart