OpenSSH RSA公钥神秘认证失败

OpenSSH RSA公钥神秘认证失败

我对配置 OpenSSH 以要求公钥认证,或生成密钥并通过 authorized_keys 设置访问权限并不陌生,但这一点让我很困惑。

我为我的岳父母制作了一个 Linux Mint 盒子。这样做的好处是不必为 Windows 付费,并且允许我在出现问题时远程管理系统。他们搬家了,搬家后他们立即打电话告诉我,在登录提示后,盒子从未进入 GUI。我有一个带有密钥的帐户(在交给他们之前进行了测试)就是为了这个目的,对吧?

现在的问题是:

localuser@client:~
$ ssh remoteuser@server
remoteuser@server: Permission denied (publickey).
localuser@client:~
$ ssh -i ~/.ssh/id_rsa remoteuser@server
remoteuser@server: Permission denied (publickey).

这很糟糕,我宁愿保持社交距离,不让其他时事变得更糟(注意本地用户!=远程用户)。

解决方法:

我制作了一个简单的 bash 脚本,并将其和我的公钥放在一起,以便于下载。我使用curl -sL https://www.example.net/script | bash-另一个帐户通过电话在控制台上通过快速命令与我的 FIL 交谈。该脚本将密钥下载到此用户的 authorized_keys 中,并设置目录和文件的权限,以使 OpenSSH 守护程序正常运行。

结果:

localuser@client:~
$ ssh remoteuser2@server
Enter passphrase for key '/home/localuser/.ssh/id_rsa':
remoteuser2@server:~
$ su remoteuser
Password:
remoteuser@server:/home/remoteuser
$ sudo diff -q -s .ssh/authorized_keys ~/.ssh/authorized_keys
[sudo] password for remoteuser:
Files .ssh/authorized_keys and /home/remoteuser/.ssh/authorized_keys are identical

这解决了眼前的问题。我可以进入并可以做我需要做的事情,但我仍然感到困惑。我仔细检查了权限/home/remoteuser/.ssh及其/home/remoteuser2/.ssh各自的authorized_keys文件。它们都匹配。然后事情变得非常奇怪。当上述会话仍处于活动状态时:

localuser@client:~
$ ssh remoteuser@server
Enter passphrase for key '/home/localuser/.ssh/id_rsa':
remoteuser@server:~
$

好吧……怎么回事?我退出了所有会话,但仍然可以进入,无需解决方法。这真是令人抓狂。所以我重新启动了远程框,然后 POW!除非我先使用解决方法,否则我无法进入。

有什么想法吗?我非常困惑。它不起作用,但如果我以其他人的身份登录,那么su对我来说,它就起作用了。一旦重新启动,我就必须再次使用该技巧。要绝对清楚这是否重要:remoteuser、remoteuser2 和 localuser 都是不同的。

答案1

当我构建机器时,我为我的用户打开了主目录加密。这可以防止 sshd 读取我的 authorized_keys 文件,因为它是加密的。当我登录另一个帐户和su我的帐户时,我正在解密我的主目录。这就是为什么后续登录成功以及下次重启后的尝试再次失败的原因。问题下方的评论火车有所有的故障排除步骤。感谢匿名用户 user1686 帮助我解决这个问题。我真的希望你是一个指定用户,这样我就可以标记你的答案以给你声誉。

修复步骤:

维护加密主页:https://unix.stackexchange.com/questions/47122/cant-do-ssh-public-key-login-under-encrypted-home

或者

删除主目录加密:https://ixnfo.com/en/disabling-ecryptfs-encryption-at-home-directory.html

我没有具体做过,但我没有理由相信它们不会起作用。

相关内容