我正在尝试在 16.04 中设置 root 帐户之间的无密码 ssh(Hadoop 安装所需)。我通过sudo su - root
和为 root 设置了密码passwd
。
当我尝试例如
ssh -l root slave3
或者ssh-copy-id -i $HOME/.ssh/id_rsa_root.pub root@master
我明白了
Permission denied, please try again.
我已尝试了所有能找到的建议,即对 /etc/ssh/sshd_config 进行以下编辑(一次一个):
PermitRootLogin without-password
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
#StrictModes yes
UsePAM no
AllowUsers root hduser
每次都这样sudo service ssh reload
,但我仍然被拒绝许可。任何帮助都非常感谢。
答案1
在 Ubuntu 中,默认的 SSH 策略是“拒绝直接通过 SSH 进行 root 登录,除非通过 SSH 密钥身份验证。”这是通过 行完成PermitRootLogin without-password
的/etc/ssh/sshd_config
。
您可以通过将该行更改为 来启用通过 SSH 进行的 root 密码登录PermitRootLogin yes
。但是我必须提醒您 - 这允许通过 Internet 暴力破解密码root
,这会使您的服务器面临风险 - 您可能希望考虑阻止所有 SSH 流量,但来自已知“良好 IP 源”的流量除外,您信任这些 IP 的源 IP,以减少 root 登录时被暴力破解的机会。如果无法做到这一点,您应该强烈考虑为 root 帐户设置 SSH 密钥身份验证,而不是密码身份验证。