SSH 公钥不起作用;我的主目录已加密

SSH 公钥不起作用;我的主目录已加密

我在远程计算机上安装了 Ubuntu LTS 14.04 服务器版本,并将本地公钥添加到~/.ssh/authorized_keys远程计算机上。我发现即使在远程计算机上将权限设置为~/.ssh700和~/.ssh/*600后,我仍然需要使用密码才能登录远程计算机。但是,一旦登录,我就可以开始使用公钥对其他 ssh 会话进行授权。

我的主目录已加密。

我怎样才能解决这个问题?

答案1

这是我在评论中发布的链接中的解决方案。这来自这里,它引用了这个超级用户帖子

创建.ssh文件夹/home用于存储密钥

sudo mkdir /home/.ssh

将现有的authorized_keys文件.ssh作为用户名移动到目录中

sudo mv ~/.ssh/authorized_keys /home/.ssh/username

.ssh在用户目录中创建到authorized_keys文件的符号链接

ln -s /home/.ssh/username ~/.ssh/authorized_keys

更新文件以设置文件sshd_config的新路径authorized_keys

sudo vim /etc/ssh/sshd_config

将行更改AuthorizedKeysFile为:

AuthorizedKeysFile      /home/.ssh/%u

重新启动计算机

sudo shutdown -r now

登录到您的服务器,您应该会看到一个最小的未解密主目录...您将需要在其中创建并编辑一个 .profile 文件才能ecryptfs挂载您的主目录。

sudo vim ~/.profile

添加这些行:

ecryptfs-mount-private
cd /home/username

注销/重新启动,然后再次返回。 SSH 密钥身份验证后,系统应该提示您输入密码,然后会看到解密后的主目录。

现在,无论您的主目录是否已解密,您现在每次都应该能够使用 SSH 密钥登录。

相关内容