SSH密钥设置,但仍然要求密码(但不是第二,第三等会话)

时间:2014-05-28 05:48:46

标签: ssh key

目标服务器是一个相对干净的Ubuntu 14.04安装。我使用ssh-keygen生成了一个新的ssh密钥,并使用ssh-copy-id将其添加到我的服务器。我还检查了公钥是否在服务器上的~/.ssh/authorized_keys文件中。

即便如此,每当我尝试ssh进入服务器时,系统都会提示我输入密码。

然而,我发现了一些奇怪的东西。在使用我的密码登录我的第一个会话后,下一个并发会话不会要求输入密码。他们似乎正在使用ssh密钥。我在两个不同的客户端(Mint OSX)上注意到了这种行为。

6 个答案:

答案 0 :(得分:2)

您确定您的SSH密钥不受密码保护吗?请尝试以下方法:

How do I remove the passphrase for the SSH key without having to create a new key?

如果情况并非如此,可能只是ssh无法找到您的私钥。尝试使用-i标志明确指出其位置。

ssh -i /path/to/private_key username@yourhost.com

答案 1 :(得分:0)

感谢Samuel Jun提供help.ubuntu.com - SSH Public Key Login Troubleshooting的链接!

稍微提醒一下:

如果您将授权密钥文件复制到加密主目录之外,请确保您的root安装也已加密(imho Ubuntu仍然允许未加密的root安装以及主目录的加密)。

否则,这首先会破坏使用加密的整个目的;)

答案 2 :(得分:0)

如果在Windows上发生这种情况(我在Windows 10上)

尝试以管理员身份运行您尝试通过ssh连接到服务器的程序。

对我来说,我正在使用带有独家新闻的PowerShell来安装一些东西,以便我可以直接使用它。无论如何......我以管理员身份运行PowerShell并再次尝试连接,但没有询问我的密码。

答案 3 :(得分:0)

适用于LinuxSE

使用

检查SE上下文
% ls -dZ ~user/.ssh

必须包含unconfined_u:object_r:ssh_home_t:s0

如果没有,那就是问题,因为root run

# for i in   ~user/.ssh ~user/.ssh/*
do 
   semanage fcontext -a -t ssh_home_t $i
done
# restorecon -v -R  ~user/.ssh 

答案 4 :(得分:0)

它看起来与您的主目录上的加密有关,因此无法读取authorized_keys文件。

https://unix.stackexchange.com/a/238570

答案 5 :(得分:0)

确保以正确的格式将ssh公钥复制到远程主机。如果您打开密钥文件进行编辑,则应阅读1行。 基本上,只需要使用ssh-copy-id username @ remote。它将照顾其余部分。

相关问题