今天上午,一同事需要向服务器的指定目录下上传文件,领导让我这边给创建一个账号,具体操作如下:
[email protected]:~# useradd -d/data_1/ftp/zhangyu/ -s /bin/bash zhangyu
[email protected]:~# passwd zhangyu
创建用户并设置密码,使用winscp登录,设置如下图所示:
接下来弹出如下图所示的对话框,要求输入密码,最初想着是密码输错了便再次输入密码,可是仍然登录不上去,还是弹出下图所示的对话框,登录服务器将用户zhangyu的密码重新设置后再次登录,报错信息依旧
使用图像界面登录不上去,我就尝试使用Xshell工具进行连接,仍然不能登录,报错信息如下图所示:
真的很郁闷,不就创建一个用户么怎么就是不能正常登录呢,百度搜索给出如下两种原因:
1::服务没有启动
2:卸载openssh-server软件再进行安装
查看SSH服务的状态:
[email protected]:~# 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
[email protected]:~# service ssh restart
ssh stop/waiting
ssh start/running, process 31258
Winscp可以正常登录
Xshell也可以正常登录
问题解决了,我查看了一下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 #允许lgh、test帐户通过SSH登录系统。
方法四:(DenyUsers)
1、在/etc/ssh/sshd_config配置文件中设置DenyUsers选项,(配置完成需要重启SSHD服务)格式如下:
DenyUsers zhangsan wangwu #拒绝zhangsan、wangwu帐户通过SSH登录系统。