如果用户未登录物理服务器,SSH 会出现异常行为

如果用户未登录物理服务器,SSH 会出现异常行为

我的 ssh 服务器出现了一个奇怪的问题。如果我启动我的家庭服务器,然后使用我的帐户通过 ubuntu 登录(我只有一个帐户),一切都会正常,我可以使用我的另一台计算机(OSX)访问在此服务器上启动的 ssh 服务器。但是,如果我启动我的家庭服务器并且在启动时不登录(服务器停留在“login:”),我会遇到以下问题:

  • 使用公钥/私钥的 RSA 身份验证不起作用,我必须手动输入密码
  • 如果我启动一个分离的进程(使用最后的 &),当我结束 ssh 链接时,该进程将暂停。如果我再次连接,该进程将再次运行。

我的家庭服务器(Ubuntu)配置是:

SSH: OpenSSH_5.5p1 Debian-6, OpenSSL 0.9.8o 01 Jun 2010
OS : Linux XXXX 2.6.32-28-server #55-Ubuntu SMP Mon Jan 10 23:57:16 UTC 2011 x86_64 GNU/Linux

我使用我的工作站(OSX)访问它:

SSH: OpenSSH_5.2p1, OpenSSL 0.9.8r 8 Feb 2011
OS : Darwin MacBook-de-kheraud.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386

你知道它是从哪里来的吗?有没有办法让 SSH 正常工作,即使服务器上没有登录用户?

答案1

您的 Ubuntu 服务器上的主驱动器是否已加密?

如果是,则当您登录本地帐户时,它将被解密。当您在本地登录之前尝试 ssh 登录时,ssh 无法读取您的~username/.ssh/authorized_keys文件,并且会要求您输入密码。

解决方案是更改 ssh 查找 authorized_keys 的位置。您可以以 root 身份编辑文件/etc/ssh/sshd_config并更改AuthorizedKeysFile行。

例如,如果你将其更改为 -

AuthorizedKeysFile  /etc/ssh/authorized_keys.%u

然后将您的复制~username/.ssh/authorized_keys/etc/ssh/authorized_keys.username。ssh 将能够读取它而无需本地登录机器。

相关内容