VirtualBox 仅在本地用户登录后才允许 ssh 通过 NAT

VirtualBox 仅在本地用户登录后才允许 ssh 通过 NAT
  • VirtulBox:6.0
  • 主机:Arch Linux
  • 访客:Ubuntu 16.04.5 LTS
  • SSH 服务器:OpenSSH_7.2p2

我配置了端口转发:guest 22 -> host localhost:2022。认证方法只有“publickey”。

当我启动虚拟机时,我可以以 root 身份连接,但不能以本地用户身份连接:

  • ssh -p 2022 root@localhost-> 成功
  • ssh -p 2022 user@localhost->user@localhost: Permission denied (publickey).

如果我在虚拟机窗口登录,则允许用户使用 ssh。但如果我在虚拟机窗口注销,则用户的新 ssh 连接将被拒绝。

如何在启动虚拟机后允许用户连接(无需在窗口中本地登录)?

答案1

可能user的主目录以及~/.ssh/authorized_keys都已加密;本地登录的用户可读它。

Unix 和 Linux SE 上有这个问题:无法在加密主目录下进行 SSH 公钥登录。 从那里:

ssh_config文件中,您可以更改查找私钥的位置。您可以做一些事情,例如在 创建一个新文件夹/etc/ssh/keys/并将您的id_rsa私钥文件放入其中,然后更改IdentityFile中的选项ssh_config以在新位置查找。这样做时,您需要采取某些措施来保护您的私钥。

这是假设您是计算机的唯一用户。如果不是,您可以创建类似/etc/ssh/keys/john/和的文件夹/etc/ssh/keys/dogbert/,然后在IdentityFile选项中输入/etc/ssh/keys/%u/id_rsa

但是也:

但是,如果您的加密技术使用您的密码作为解密所有内容的密钥,您仍然必须输入密码才能解密所有内容。

因此,真正的无密码登录在这里不起作用(除非您想将密码以明文形式存储在某处以便自动输入到解密过程,但这比根本不加密更不安全)。

[…]

Ubuntu 使用 ecryptfs 在登录时挂载加密分区(因此当您提供密码时)[…]。[在您通过 SSH 登录而无需密码后] 您的主文件夹不会自动解密。要以未加密方式挂载它,您必须在每次登录时输入此命令:

/sbin/mount.ecryptfs_private

它将再次要求您输入登录密码。

相关内容