【问题标题】:Trouble setting up SSH keys设置 SSH 密钥时遇到问题
【发布时间】:2014-11-30 04:39:02
【问题描述】:

我正在使用 rsync 将我们的服务器备份到另一个在我们的 LAN 上使用命令运行 rsync 守护程序的服务器

rsync -av /volume1/Public/root@192.168.2.20:/shares/Backup/Public/

除了需要手动输入密码外,它工作得很好,所以我想用一个密钥对来自动化它。运行 ssh-keygen 我得到下面我点击返回 3 次的地方

ssh-keygen 生成公钥/私钥 rsa 密钥对。 输入保存密钥的文件 (/root/.ssh/id_rsa): 输入密码(无密码为空): 再次输入相同的密码: 您的标识已保存在 /root/.ssh/id_rsa 中。 您的公钥已保存在 /root/.ssh/id_rsa.pub 中。

ssh-copy-id 脚本不在我们的系统上,所以我使用下面的行将密码文件复制到备份目标服务器。我检查并正确复制了

> cat /root/.ssh/id_rsa.pub | ssh root@192.168.2.20 "cat >> /root/.ssh/authorized_keys"

作为测试,我 ssh 到目标服务器以确保不再有密码提示,但我仍然得到一个?

DiskStation> ssh 192.168.2.20
root@192.168.2.20's password:

我在 unix 方面并不强,所以可能会遗漏一些明显的东西。请给点建议?

___ 编辑____

随后将以下设置添加到 sshd_config 但仍然没有运气:

RSAAuthentication yes
PubkeyAuthentication yes

不确定是否重要,但将公钥作为 WD Sharespace 托管的机器是 Debian Lenny 构建的。

【问题讨论】:

  • 你的 sshd 配置中的PermitRootLogin 是什么?
  • 被注释掉了(#PermitRootLogin yes)
  • 我取消了它的注释并将其设置更改为无密码。仍然提示我输入密码,但现在它不会接受密码。第三次尝试后,它报告“权限被拒绝(公钥、密码、键盘交互)”。我想知道我是否将密钥文件放在错误的位置?我必须创建 .ssh 目录,而 cat 命令创建了 authorized_keys 文件。
  • 如果您是从头开始创建的,请尝试在 .ssh 目录上设置权限 700。
  • 将 .ssh 权限设置为 700,将 authorized_keys 设置为 600。仍然收到密码提示。还对 sshd_config 进行了一些额外的更改,我将添加到原始帖子中。

标签: ssh ssh-keys


【解决方案1】:

确保钥匙在您的链条中。 ssh-add ~path/to/private/key 否则你需要做 ssh -i /path/to/key 。然后确保您使用的是 ssh root@whatever。然后确保将文件正确写入远程节点。尝试复制和粘贴而不是你的猫和管道。最后,尝试在远程重新启动 ssh 并再次执行这些步骤(以允许 permitrootlogin 处于活动状态)。

顺便说一句,您试图避免输入密码,然后为密钥添加了密码,这一事实使整个过程毫无意义。

【讨论】:

  • 我尝试了您的建议,但仍然收到提示。我最近没有输入密码,所以编辑了我的原始帖子以反映我在运行 ssh-keygen 时只是按了 Return 3x。我重新启动了两台机器,但仍然收到提示。我已经为此工作了好几天,在线教程看起来都很简单,我很困惑。
  • 您提到您添加了与无密码相关的设置。撤消该操作,以便仅存在 permitrootlogin。确保您连接到正确的机器(查看远程机器的身份验证日志。每次身份验证失败时,您都应该看到身份验证尝试失败)。然后告诉我你的'ssh-add -l'的输出。
【解决方案2】:

无密码SSH的正确步骤如下:

首先执行 ssh-keygen 命令生成密钥

ssh-keygen 

获得密钥后,您可以将其复制到远程服务器。使用这个命令会更容易

ssh-copy-id user@host

该命令假定您使用端口 22 进行 ssh,如果不使用,则 xxxx 为端口号

ssh-copy-id "user@host -p xxxx"

查看here了解此命令的详细说明

在你的情况下,当你在编辑时

/etc/ssh/sshd_config

确保您从

修改 PasswordAuthentication
PasswordAuthentication yes

PasswordAuthentication no

然后用

重启sshd

服务 sshd 重启

【讨论】:

    猜你喜欢
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 2020-03-01
    • 1970-01-01
    相关资源
    最近更新 更多