该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
大家好,最近比较无聊,尝试将我linux虚拟机上的远程ssh验证方式由本地passwd文件修改为mysql数据库验证,我在mysql中建立了一个新的数据库,并在linux passwd中的两个用户信息写入数据库。现在,数据库是这样的:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| ceshi |
| mysql |
| test |
+--------------------+
4 rows in set (0.01 sec)
我使用的是ceshi这个数据库存储用户信息的,这个库中只有一张表,表名users:
mysql> use ceshi;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+-----------------+
| Tables_in_ceshi |
+-----------------+
| users |
+-----------------+
1 rows in set (0.00 sec)
mysql> select * from users;
+----+--------+---------+
| id | name | passwd |
+----+--------+---------+
| 1 | root | xxxxxx|
| 2 | test | test |
| 3 | shiyan | shiyan |
+----+--------+---------+
3 rows in set (0.00 sec)
我pam.d中的sshd配置:
# cat /etc/pam.d/sshd
auth required /lib/security/pam_mysql.so verbose=1 debug user=rice passwd=b1uecream host=localhost db=ceshi table=users usercolumn=name passwdcolumn=passwd crypt=0
account required /lib/security/pam_mysql.so verbose=1 debug user=rice passwd=b1uecream host=localhost db=ceshi table=users usercolumn=name passwdcolumn=passwd crypt=0
session required /lib/security/pam_limits.so
session required /lib/security/pam_mkhomedir.so
session optional /lib/security/pam_console.so
现在,我远程ssh连接,如果使用本地passwd和数据库users表中均存在的用户,例如root、test,可以正常登陆linux,但是,使用数据库users表中存在的用户,而本地passwd中不存在的,例如shiyan,则无法成功登陆。
secure日志如下:
tail --line=50 /var/log/secure
Apr 30 10:21:53 surerunos sshd[5836]: pam_mysql - option passwdcolumn is set to "passwd"
Apr 30 10:21:53 surerunos sshd[5836]: pam_mysql - option crypt is set to "0"
Apr 30 10:21:53 surerunos sshd[5836]: pam_mysql - pam_mysql_close_db() called.