- 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
它将再次要求您输入登录密码。