sshd_config中的Uselogin


12

我正在查看我的sshd_config文件,发现了这一点:

#Uselogin no

我知道它已发表评论,但上面没有任何解释,当我用google搜索时,得到以下信息:

不要使用传统的login(1)服务登录用户。因为我们正在使用特权分离,所以用户一旦登录,login(1)服务就会被禁用。

要么

指定是否将login(1)用于交互式登录会话。默认为“否”。请注意,login(1)从未用于远程命令执行。还要注意,如果启用此功能,则X11Forwarding将被禁用,因为login(1)不知道如何处理xauth(1)cookie。如果指定UsePrivilegeSeparation,它将在身份验证后被禁用。

据了解,no防止ssh使用“传统登录”,但我找不到关于“传统”登录的任何信息。

有人可以解释它的作用吗?

Answers:


15

好的,我们这里需要一些历史,在过去,访问UNIX机器的主要方法是终端和串行线路,登录时涉及四个程序。它们分别是init,getty,login和shell。init启动了getty并使其保持运行。盖蒂打开了一个串行端口(可能还有调制解调器专用的东西),然后显示登录提示并等待输入用户名。输入用户名后,getty使用用户名登录,然后登录将提示输入密码,先输入帐户内容,然后运行外壳程序,此时您就可以使用系统了。它仍然在数据中心,虚拟机和许多其他地方使用。

接下来是telnet。Telnet没有使用串行端口,因此情况有所变化。除了getty外,init还将启动telnetd(或将启动telnetd的inetd)telnetd将获取用户名,然后运行login,并且所有操作都将从那里开始。

现在出现了安全外壳。现在,安全外壳程序使您无需密码即可登录(使用密钥,也可能取决于GSS版本),因此可以使用多种方式来执行操作,可以执行与telnet完全相同的操作,而不使用美观的功能,也可以让sshd处理登录并启动外壳程序,该外壳程序允许您执行各种有趣的操作。除非您具有自定义版本的登录名,否则建议您让sshd处理登录名。(如果您拥有pam,就没有太多理由可以进行自定义登录了。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.