我正在使用 (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