![NIS 用户突然无法登录 SSH](https://linux22.com/image/640717/NIS%20%E7%94%A8%E6%88%B7%E7%AA%81%E7%84%B6%E6%97%A0%E6%B3%95%E7%99%BB%E5%BD%95%20SSH.png)
我最近为我的 NIS 添加了一个新的(客户端)服务器。大约一个月以来,它运行良好,但从今天起,我突然无法再通过 SSH 登录。同一服务器上的一些其他服务(例如 IMAP)运行良好。另一个 NIS 客户端似乎运行良好。
成功登录后,SSH 会话立即终止:
some.nis.user@nismaster:~$ ssh faultyserv
some.nis.usern@faultyserv's password:
Connection to faultyserv closed by remote host.
Connection to faultyserv closed.
/etc/log/auth.log
包含:
Aug 31 12:42:22 faultyserv sshd[27909]: pam_unix(sshd:session): session opened for user some.nis.user by (uid=0)
Aug 31 12:42:22 faultyserv sshd[27909]: fatal: login_get_lastlog: Cannot find account for uid 1234
如果我设置UseLogin yes
的话/etc/ssh/sshd_config
我可以登录,但是会得到一个奇怪的外壳:
I have no name!@faultyserv:~$ pwd
/home/s/some.nis.user
I have no name!@faultyserv:~$ sudo echo
sudo: unknown uid 1234: who are you?
I have no name!@faultyserv:~$ id some.nis.user
uid=1234 gid=1975(some.nis.user) groups=4294967295,2177(somegroup),/*snip a long grouplist*/
我认为 NIS 有问题,但不知道如何修复,有人有主意吗?
我的/etc/nsswitch.conf
包含(在更多没有 nis 的条目中):
passwd: files nis
group: files nis
shadow: files nis
netgroup: nis
答案1
问题是passwd.byuid
地图没有被传输。
运行yppush passwd.byuid
时nismaster
出现超时错误并在faultyserv
中生成以下内容/var/log/syslog
:
Sep 1 09:51:37 faultyserv ypserv[2038]: refuse to transfer passwd.byuid from <ip>, master is faultyserv.mydomain.com)
从属服务器指定了错误的主服务器:
# ypwhich -m
services.byservicename nismaster
group.bygid nismaster
group.byname nismaster
protocols.bynumber nismaster
services.byname nismaster
hosts.byname nismaster
netgroup.byhost nismaster
rpc.bynumber nismaster
passwd.byuid faultyserv.mydomain.com
netgroup nismaster
ypservers nismaster
shadow.byname faultyserv.mydomain.com
passwd.byname nismaster
hosts.byaddr nismaster
protocols.byname nismaster
rpc.byname nismaster
netgroup.byuser nismaster
netid.byname faultyserv.mydomain.com
重新运行/usr/lib/yp/ypinit -s nismaster
解决faultyserv
了问题
答案2
在 Debian 系统上有时会发生这种情况,因为使用
# shadowconfig on
将敏感的密码哈希值放入影子文件中,并使用相同的“x”条目重写密码和组文件。
在重建 passwd 和 group 文件之前,您必须执行此操作在 NIS 主服务器上
# shadowconfig off
在 Debian 上
# cd /var/lib/yp
# make all
不要忘记你必须在 passwd 和 group 中添加的特殊条目客户,这里是 passwd 条目,(在 postgres 之后)。
postgres:x:115:124:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash
+::::::
这是 sambashare 之后的第一组。
sambashare:x:125:
+:::
以及 /etc/nsswitch.conf 中提到的“nis”