如何在 Debian 上配置 sshd 以使用公钥认证?

如何在 Debian 上配置 sshd 以使用公钥认证?

我正在使用 (Debian) Dreamhost VPS,它似乎只需要基于密码的身份验证:添加我的 RSA 和 DSA 公钥并~/.ssh/authorized_keys没有改变需要密码登录的行为。

如何设置服务器以便它可以接受~/.ssh/authorized_keys

答案1

您需要进行/etc/ssh/sshd_config如下编辑:

# Both of these are probably already there, but commented
PubkeyAuthentication yes
# The next line makes sure that sshd will look in 
# $HOME/.ssh/authorized_keys for public keys
AuthorizedKeysFile      %h/.ssh/authorized_keys

此外,如果你想禁用密码验证一起(如果您使用密钥对,这通常是一个好主意),添加以下内容:

# Again, this rule is already there, but usually defaults to 'yes'
PasswordAuthentication no

在那之后,重启 ssh通过发行/etc/init.d/sshd restart你应该会没事!

以上内容假设您已经.ssh使用以下命令正确创建了目录适当的权限

这意味着您设置chmod 0700~/.ssh

答案2

步骤如下:1. 将您的公钥上传到网站并将其添加到 ~/.ssh/authorized_keys 文件中。2. 确保授权密钥具有 0600 的属性(chmod 0600 ~/.ssh/authorized_keys)3. 现在尝试 ssh,如果您使用 putty,请运行 pageant 并加载您的私钥。

答案3

还要检查主目录的所有者和权限。您必须拥有主目录,并且权限不应超过 755。

这些设置很不寻常,但当它发生时很难理解。

答案4

这也导致我在我们的系统管理员用作跳转主机的服务器上出现问题。有人向我指出,每个用户都必须在本地创建,这样就/home/user[123]/authorized_keys必须存在并包含他们的公钥。该文件需要被改名为 user1:user1。

ssh-rsa ...insert pub key string... user1@local

在近端主机上本地创建 ~/.ssh/config 也有助于更快地连接并定义一个有用的选项,即“EscapeChar ~”

chmod 0600 /user1/.ssh/authorized_keys这可能是必要的,也可能不是必要的chmod 0700 /root/.ssh/。在我第一次尝试排除故障时,它没有帮助我。

编辑 /etc/ssh/sshd_config 并取消注释:

AuthorizedKeysFile      %h/.ssh/authorized_keys

相关内容