我在远程计算机上安装了 Ubuntu LTS 14.04 服务器版本,并将本地公钥添加到~/.ssh/authorized_keys
远程计算机上。我发现即使在远程计算机上将权限设置为~/.ssh
700和~/.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 密钥登录。