今天上午,一同事需要向服务器的指定目录下上传文件,领导让我这边给创建一个账号,具体操作如下:

root@media:~# useradd -d/data_1/ftp/zhangyu/ -s /bin/bash zhangyu

root@media:~# passwd zhangyu

创建用户并设置密码,使用winscp登录,设置如下图所示:

wKioL1Rq5grS1G4nAAE-lxwNAs8565.jpg

接下来弹出如下图所示的对话框,要求输入密码,最初想着是密码输错了便再次输入密码,可是仍然登录不上去,还是弹出下图所示的对话框,登录服务器将用户zhangyu的密码重新设置后再次登录,报错信息依旧

wKiom1Rq5cCDWR2TAACmrpAvHmw152.jpg

使用图像界面登录不上去,我就尝试使用Xshell工具进行连接,仍然不能登录,报错信息如下图所示:

wKioL1Rq5mPiINXrAAEi--YeTXs108.jpg

真的很郁闷,不就创建一个用户么怎么就是不能正常登录呢,百度搜索给出如下两种原因:

1:服务没有启动

2:卸载openssh-server软件再进行安装

查看SSH服务的状态:

root@media:~# service ssh status

ssh start/running, process 26629

由于是生产环境,而且其他用户都可以正常登录使用,应该不是软件的软件,便找来同事一起看这个问题,我们重新创建用户并设置密码,用户信息全部采用默认设置(之前创建的用户的路径是指定的),再次登录还是不行,后来就猜想是不是做了什么安全策略或者是安全设置,查看ssh服务的主配置文件,发现里面有一项AllowUsers,呵呵,总算知道是怎么回事了,原来是在这里做了设置

cat /etc/ssh/sshd_config

AllowUsers tomcat aaa

接下来将zhangyu的姓名添加到AllowUsers一行,重启ssh服务

cat /etc/ssh/sshd_config

AllowUsers tomcat aaa  zhangyu

root@media:~# service ssh restart

ssh stop/waiting

ssh start/running, process 31258

Winscp可以正常登录

wKioL1Rq5ryA-syIAAGjC4vwpO4853.jpg

Xshell也可以正常登录

wKiom1Rq5nPCbrriAAEcFExdHOE192.jpg

问题解决了,我查看了一下Linux SSH是如何管理用户登录

参考文档:http://www.linuxidc.com/Linux/2013-02/79674.htm

方法一:(allow 允许)

1、在/etc/pam.d/sshd文件中加入以下行(注:加入到第一行)

authrequired /lib64/security/pam_listfile.so item=user sense=allowfile=/etc/sshusers onerr=fail

2、在/etc下建立sshusers文件,编辑这个文件,加入你允许使用ssh服务的用户名即可。

echo"lgh" >> /etc/sshusers

方法二:(deny 拒绝)

1、在/etc/pam.d/sshd文件中加入以下行(注:加入到第一行)

authrequired /lib64/security/pam_listfile.so item=user sense=denyfile=/etc/sshd_user_deny_list onerr=succeed

2、在/etc下建立sshd_user_deny_list文件,编辑这个文件,加入你不允许使用ssh服务的用户名即可。

echo"test" >> /etc/sshd_user_deny_list

方法三:(AllowUsers

1、在/etc/ssh/sshd_config配置文件中设置AllowUsers选项,(配置完成需要重启SSHD服务)格式如下:

AllowUsers   lgh test            #允许lghtest帐户通过SSH登录系统。

方法四:(DenyUsers

1、在/etc/ssh/sshd_config配置文件中设置DenyUsers选项,(配置完成需要重启SSHD服务)格式如下:

DenyUsers   zhangsan wangwu            #拒绝zhangsanwangwu帐户通过SSH登录系统。