sftp以及sshd文件详解

实例:我遇到的问题,莫名其妙生产环境服务器的root用户被禁止远程登录,公司领导非常着急,寻问情况,并且服务器是作为sftp服务器与某银行对接使用的,非常重要,根据开发回复的问题,我开始进行解决。
问题归纳:
1、root用户无法登录
2、sftp无法登录
3、开发回复所有用户无法登录。

解决过程:
1、尝试root登录,访问被拒绝。
2、sftp登录,闪退。无法登录
3、普通用户可以登录。

重现问题:使用自己之前创建的普通用户登录,登录成功,使用普通用户su - root登录到root。登录成功。
使用同一局域网中的另外一台服务器,进行测试访问,发现故障,sftp用户访问闪退
如下:sftp sftp_user@HOST
sftp Connection closed
无法出现sftp登录界面

首先解决root无法登录的问题

[root@iZbp1ir684nnmky1uumf3bZ ~]# vim /etc/ssh/sshd_config 

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

# override default of no subsystems
Subsystem       sftp    internal-sftp
#Subsystem      sftp    /usr/libexec/openssh/sftp-server

**# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       PermitTTY no
#       ForceCommand cvs server**
PermitRootLogin yes
UseDNS no
AddressFamily inet
SyslogFacility AUTHPRIV
PasswordAuthentication yes

AllowGroups root ssh-users sftp-users
Match Group sftp-users
ChrootDirectory /home/sftp_root
AllowTcpForwarding no
ForceCommand internal-sftp

如上显示,root用户是被允许远程登录的,但是root却无法远程登录,我们需要在AllowGroups 后面加上root,否则root用户就会被禁止远程登录。
至于sftp无法登录的问题,我们需要把

Subsystem      sftp    /usr/libexec/openssh/sftp-server

更改为

   Subsystem       sftp    internal-sftp

在最后一行添加上

ForceCommand internal-sftp

随后重启服务即可。

service sshd reload
或
sysemctl reload sshd

不要执行restart,或者stop
否则可能会无法登录。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`sshd_config` 是 SSH 服务器的配置文件,用于配置 SSH 服务器的行为和参数。下面是一些常用的配置项及其含义: 1. `Port`: 指定 SSH 服务器的监听端口,默认为 22。 2. `Protocol`: 指定 SSH 协议版本,可以为 1、2 或 1,2。默认为 2。 3. `HostKey`: 指定 SSH 服务器的密钥文件,可以有多个。默认为 /etc/ssh/ssh_host_rsa_key、/etc/ssh/ssh_host_dsa_key、/etc/ssh/ssh_host_ecdsa_key 和 /etc/ssh/ssh_host_ed25519_key。 4. `LoginGraceTime`: 登录超时时间,超过这个时间没有输入密码就会自动断开连接。默认为 2 分钟。 5. `PermitRootLogin`: 是否允许 root 用户登录,可以为 yes、no 或 without-password。默认为 without-password,表示只允许使用公钥进行身份验证。 6. `PubkeyAuthentication`: 是否允许使用公钥进行身份验证,可以为 yes 或 no。默认为 yes。 7. `PasswordAuthentication`: 是否允许使用密码进行身份验证,可以为 yes 或 no。默认为 yes。 8. `AllowUsers`: 允许登录的用户列表,只有列表中的用户才能登录。 9. `DenyUsers`: 禁止登录的用户列表,列表中的用户不能登录。 10. `AllowGroups`: 允许登录的用户组列表,只有属于这些用户组的用户才能登录。 11. `DenyGroups`: 禁止登录的用户组列表,属于这些用户组的用户不能登录。 12. `Subsystem`: 指定子系统,比如 sftp,可以在 SSH 会话中启动这些子系统。 13. `UsePAM`: 是否使用 PAM 进行身份验证,可以为 yes 或 no。默认为 yes。 14. `X11Forwarding`: 是否允许 X11 转发,可以为 yes 或 no。默认为 no。 15. `MaxAuthTries`: 最大身份验证尝试次数,默认为 6。 16. `MaxSessions`: 最大会话数,默认为 10。 以上是一些常见的 SSH 服务器配置项,还有很多其他的配置项可以根据实际需求进行设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值