服务器本地root用户不允许访问ssh
时间: 2023-08-21 16:03:45 浏览: 89
这个问题可能是因为服务器的配置导致的。为了解决这个问题,你可以尝试以下几个步骤:
1. 检查SSH配置文件:查看/etc/ssh/sshd_config文件,确认是否允许root用户通过SSH登录。如果PermitRootLogin选项设置为no,则需要修改为yes。
2. 检查PAM配置文件:查看/etc/pam.d/sshd文件,确认是否允许root用户通过SSH登录。如果有“auth required pam_rootok.so”这一行,可以尝试将其注释掉或删除。
3. 重启SSH服务:在修改完配置文件后,需要重启SSH服务才能生效。可以使用命令“systemctl restart sshd”或“service sshd restart”来重启。
如果以上步骤无法解决问题,可以尝试查看系统日志,确认是否有相关错误信息。同时也可以考虑使用其他用户登录服务器并进行相关操作。
相关问题
现在有台linux服务器不知以前设置过什么,root用户不能通过ssh远程登录,但可以用普通用户登录su - root
这种情况可能是由于Linux系统的安全策略导致的,特别是SSH服务配置了限制措施。通常,root用户的SSH默认会被防火墙或sshd_config文件里的PermitRootLogin选项限制,不允许直接从外部访问。
以下是可能的原因及解决步骤:
1. **PermitRootLogin设置**:检查`/etc/ssh/sshd_config`文件中关于`PermitRootLogin`的配置。如果设置为`no`,则不允许root用户通过SSH远程登录。你可以修改成`yes`,但强烈建议在生产环境中采用更安全的方式,如只允许特定IP地址或者密钥认证。
```bash
# cat /etc/ssh/sshd_config | grep PermitRootLogin
PermitRootLogin no
# sed -i 's/no/yes/' /etc/ssh/sshd_config
# service ssh restart 或 systemctl restart sshd
```
2. **防火墙规则**:检查firewalld或iptables是否阻止了root用户的SSH连接。需要开放相应的端口和来源IP。
3. **账户策略**:如果系统上启用了SELinux,root用户可能因为权限限制而无法通过SSH直接登录。这时,你需要调整 SELinux 的策略以允许root SSH访问。
4. **SSH密钥对**:确认是否有启用无密码登录的SSH密钥对。如果没有,可以生成一对,并将公钥添加到root用户的authorized_keys中。
5. **SSH日志**:查阅`/var/log/auth.log`等日志文件,找出登录失败的具体原因,帮助定位问题。
如果你仍然不能root用户远程SSH登录,记得切换回普通用户后使用`sudo`临时执行需要root权限的操作。
Linux中 1、SSH服务安全配置 通过配置/etc/ssh/ssh_config进行安全加固 1)限制root用户通过ssh登录 2)用户登录会话超时自动退出 3)限制用户登录会话最大连接数 2、ftp服务器搭建和加固 修改配置文件进行安全加固 3、Apache服务器搭建和加固 1)禁止目录访问 2)隐藏Apache版本信息 3)配置Apache的ACL
关于Linux中的安全配置和加固,以下是一些简单的指导:
1. SSH服务安全配置:
1)限制root用户通过ssh登录:
编辑/etc/ssh/sshd_config文件,找到PermitRootLogin并将其设置为no即可限制root用户通过ssh登录。
2)用户登录会话超时自动退出:
编辑/etc/ssh/sshd_config文件,找到ClientAliveInterval和ClientAliveCountMax,并将其值分别设置为300和0,即可实现用户登录会话超时自动退出。
3)限制用户登录会话最大连接数:
编辑/etc/security/limits.conf文件,添加以下内容:
```
* hard maxlogins 3
```
其中3是最大连接数,可以根据实际情况进行修改。
2. FTP服务器搭建和加固:
FTP服务器在Linux中可以使用vsftpd或proftpd等软件进行搭建。在搭建完成后,可以通过以下方式进行安全加固:
1)禁止匿名访问:
编辑/etc/vsftpd.conf文件,找到anonymous_enable并将其设置为no即可禁止匿名访问。
2)限制用户访问:
编辑/etc/vsftpd.chroot_list文件,将不允许访问的用户添加到该文件中。
3)使用SFTP协议:
SFTP协议是基于SSH协议的,相比FTP协议更加安全可靠。可以通过修改/etc/ssh/sshd_config文件来启用SFTP协议。
3. Apache服务器搭建和加固:
Apache服务器在Linux中可以使用httpd软件进行搭建。在搭建完成后,可以通过以下方式进行安全加固:
1)禁止目录访问:
在需要禁止访问的目录下,创建.htaccess文件,并添加以下内容:
```
Options -Indexes
```
2)隐藏Apache版本信息:
编辑/etc/httpd/conf/httpd.conf文件,找到ServerTokens和ServerSignature,并将其设置为Prod即可隐藏Apache版本信息。
3)配置Apache的ACL:
可以使用ACL来控制Apache服务器上的文件和目录的访问权限。可以通过以下命令来添加ACL:
```
setfacl -m user:username:rwx /path/to/directory
```
其中username是要授权的用户名,/path/to/directory是要授权的目录。
阅读全文