使用SSH的PAM模块的问题

时间:2017-07-04 08:39:57

标签: sqlite ssh pam

我有一个Linux盒子,上面运行着一些python应用程序。 要求是允许该应用程序上的任何登录用户(用户存储在sqlite表中)能够SSH进入该框。

我试图使用libpam_sqlitehere

我已对/etc/pam.s/sshd以及/etc/pam_conf等进行了必要的更改。

/etc/pam.d/sshd

auth        required    pam_sqlite.so 
account     required    pam_sqlite.so
password    required    pam_sqlite.so

/etc/pam_sqlite.conf

database = /etc/sysdb
table = account
user_column = user_name
pwd_column = user_password
expired_column = acc_expired
newtok_column = acc_new_pwreq

我在我的SQLite表中插入了一条包含用户和密码的新记录,但它失败了。

以下是/var/log/auth/log的错误:

sshd[2496]: Invalid user timmy from 127.0.0.1
sshd[2496]: input_userauth_request: invalid user timmy [preauth]
sshd[2496]: Failed password for invalid user timmy from 127.0.0.1 port 52220 ssh2
sshd[2496]: Connection closed by 127.0.0.1 [preauth]

看起来好像SSH在通过SQLite tablle进行身份验证之前首先要检查用户是否存在于Linux Box上(我是对的吗?)

然后我在盒子上创建了一个新的Linux用户,其名称与SQLite表中的名称相同(但使用不同的密码)并再次尝试,发现它有效!

我也尝试了以下pam_listfile.so,并发现如果系统上有相应的用户,它只会通过。 (或者我在某处出错了)

基本上,我的问题是,为了让SSH工作(ssh some_user@some_addr),用户some_user是否必须在some_addr系统上存在?还是我错过了一些非常明显的东西? 如果是这样,有什么办法可以达到我的要求(没有多个SSH密钥)?

提前感谢所有帮助!

0 个答案:

没有答案