我正在查看我的sshd_config文件,发现了这一点:
#Uselogin no
我知道它已发表评论,但上面没有任何解释,当我用google搜索时,得到以下信息:
不要使用传统的login(1)服务登录用户。因为我们正在使用特权分离,所以用户一旦登录,login(1)服务就会被禁用。
或者
指定是否将login(1)用于交互式登录会话。默认为“否”。请注意,login(1)从未用于远程命令执行。还要注意,如果启用此功能,则X11Forwarding将被禁用,因为login(1)不知道如何处理xauth(1)cookie。如果指定UsePrivilegeSeparation,则在身份验证后将被禁用。
据了解,no
防止ssh使用“传统登录”,但是我找不到关于“传统”登录的任何信息。
有人可以解释它的作用吗?
好的,我们这里需要一些历史,在过去,访问UNIX机器的主要方法是终端和串行线路,登录时涉及四个程序。它们分别是init,getty,login和shell。init启动了getty并保持其运行。盖蒂打开了一个串行端口(可能还有调制解调器专用的东西),然后显示登录提示并等待输入用户名。输入用户名后,getty会使用用户名登录,然后登录将提示输入密码,先输入帐户内容,然后运行外壳程序,此时您就可以使用系统了。它仍然在数据中心,虚拟机和许多其他地方使用。
接下来是telnet。Telnet没有使用串行端口,因此情况有所变化。除了getty外,init还将启动telnetd(或将启动telnetd的inetd)telnetd将获取用户名,然后运行login,并且所有操作都将从那里开始。
现在出现了安全外壳。现在,安全外壳程序使您无需密码即可登录(使用密钥,或者取决于版本GSS),因此可以通过多种方式来执行操作,可以执行与telnet完全相同的操作,而不必使用美观的功能,也可以让sshd处理登录并启动外壳程序,该外壳程序可以使您执行各种有趣的操作。除非您具有自定义版本的登录名,否则建议您让sshd处理登录名。(如果您拥有pam,则没有太多理由可以进行自定义登录了。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句