目标服务器是一个相对干净的Ubuntu 14.04安装。我使用ssh-keygen
生成了一个新的ssh密钥,并使用ssh-copy-id
将其添加到我的服务器。我还检查了公钥是否在服务器上的~/.ssh/authorized_keys
文件中。
即便如此,每当我尝试ssh
进入服务器时,系统都会提示我输入密码。
ssh
密钥。我在两个不同的客户端(Mint OSX)上注意到了这种行为。
答案 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文件。
答案 5 :(得分:0)
确保以正确的格式将ssh公钥复制到远程主机。如果您打开密钥文件进行编辑,则应阅读1行。 基本上,只需要使用ssh-copy-id username @ remote。它将照顾其余部分。