linux 仅保留root用户的ssh权限,其他已建立的用户如hn4301、hn4302、hn4303取消ssh功能只能通过sftp访问
时间: 2024-12-08 15:21:33 浏览: 19
在Linux系统中,如果你想要限制只有root用户可以使用SSH远程登录,而其他普通用户(如hn4301、hn4302、hn4303)只能通过SFTP(Secure File Transfer Protocol)访问文件,你可以按照以下步骤操作:
1. **禁用普通用户的SSH登录**:
- 打开终端并以root用户身份登录。
- 使用`sudo nano /etc/ssh/sshd_config`打开SSH配置文件,如果尚未安装`nano`,可以用`vi`或`vim`替代。
- 搜索`PermitRootLogin`行,将其修改为`PermitRootLogin no`,表示只允许root用户通过SSH登录。
- 确认保存并退出编辑器。
2. **启用SFTP服务**:
- 如果还未开启SFTP服务,可以在`sshd_config`中添加如下行(如果不存在):
```
Subsystem sftp /usr/libexec/openssh/sftp-server
```
- 重启SSH服务让更改生效:
```bash
sudo service ssh restart
```
完成以上设置后,hn4301、hn4302、hn4303等用户将无法通过SSH直接登录,只能通过SSH客户端连接到服务器并选择SFTP方式进行文件传输。
相关问题
linux 仅保留root用户的ssh权限,其他已建立的用户如hn4301、hn4302、hn4303只能通过sftp访问
在Linux系统中,如果你想要限制非root用户只通过SFTP(安全文件传输协议)访问而不允许SSH( Secure Shell)登录,可以按照以下步骤操作:
1. **禁用普通用户的SSH登录**:
- 打开`/etc/ssh/sshd_config` 文件,通常是一个文本编辑器(如nano或vi)里的内容。
- 搜索 `PermitRootLogin` 行,将其设置为 `no`,以禁止所有用户,包括root,通过SSH登录,只保留root SSH权限。例如:
```
PermitRootLogin no
```
2. **配置SFTP服务**:
- 确保 `Subsystem` 配置了 SFTP支持,如果没有,添加以下行:
```
Subsystem sftp /usr/libexec/openssh/sftp-server
```
3. **启动并启用SFTP**:
- 使用命令 `sudo service ssh restart` 或 `sudo systemctl restart ssh` 重启SSH服务,使之加载新的配置。
4. **为普通用户创建SFTP只读权限**:
- 对于每个需要SFTP访问的用户(比如hn4301、hn4302等),在 `/etc/ssh/sshd_config` 中找到他们的主目录路径(通常是`Match User hn4301`),然后添加:
```
ChrootDirectory %h
AllowTcpForwarding no
ForceCommand internal-sftp
```
这里`ChrootDirectory`将用户限制在其主目录内,`AllowTcpForwarding no`关闭端口转发,`ForceCommand internal-sftp`强制使用内部SFTP服务器。
5. **测试并验证**:
- 重启SSH服务后,只有root用户能通过SSH登录,而hn4301、hn4302等用户则需要在客户端上通过SFTP连接到它们的相应目录。
linux 如何禁止root以外其他已建立的用户如hn4301、hn4302、hn4303的ssh功能,只能通过sftp访问
要在Linux系统中禁止单独的用户名(例如hn4301、hn4302、hn4303)通过SSH访问,而只允许他们通过SFTP(Secure File Transfer Protocol)访问,你需要按照以下步骤操作:
1. **检查SSH配置**:
首先,确保SSH服务器的配置文件 `/etc/ssh/sshd_config` 中对这些用户设置了正确的权限限制。通常,在`Match User hn4301 hn4302 hn4303`这样的匹配规则下面,你可以设置`DenyPasswordAuthentication yes`来禁止密码登录。
```
Match User hn4301 hn4302 hn4303
DenyPasswordAuthentication yes
ForceCommand sftp
```
这会让这些用户只能通过`sftp`命令登录。
2. **启用SFTP**:
确保SSH服务已包含SFTP支持。默认情况下,OpenSSH服务器已经包含了SFTP,但如果之前禁用了,你需要在`sshd_config`中启用它,比如:
```
Subsystem sftp /usr/libexec/openssh/sftp-server
```
3. **重启SSH服务**:
修改配置后,你需要重启SSH服务使其生效,使用命令:
```bash
sudo systemctl restart sshd
```
4. **验证结果**:
为了确认更改是否成功,你可以在另一台机器上尝试连接,看看hn4301、hn4302和hn4303用户是否只能通过sftp而非SSH登录。
阅读全文