仅特定用户的SSH身份验证绕过密码身份验证

时间:2019-04-04 16:37:34

标签: unix authentication ssh password-protection ssh-keys

我正在尝试构建一个bash脚本,该脚本连接到其他服务器以进行一些基本监视,例如检查磁盘空间并通过电子邮件发送此信息。我仍然需要所有这些服务器要求用户进行常规输入/访问的密码,但是对于此特定的监视脚本,我不想被要求输入密码(仅适用于通用ssh密钥)

如何使用以下命令配置特定用户(将其称为monitor)连接到服务器,但不要求输入密码(因为它将用于cron,因此需要自动执行)< / p>

// SSH到web1服务器并获取磁盘空间

cmd=$(ssh web1 df -h | grep -E "xvda1|xvde1" | awk '{print $5};' | sort -r | head -1)

让我们说服务器有3个用户“ monitor”,“ bob”和“ paul”

当它到达脚本的这一部分时,ssh web1迫使我输入密码-是否可以设置特定用户(在这种情况下为monitor用户)进行身份验证和登录使用ssh some-ip而不要求输入密码,但是在bobpaul尝试登录时仍然要求输入密码吗?

2 个答案:

答案 0 :(得分:2)

是的,这非常简单:仅为 monitor 用户创建一个SSH密钥(ssh-keygen),然后将其私钥复制到其他服务器(ssh-copy-id SERVER-IP-OR-NAME

只需在服务器上启用PubkeyAuthentication,但默认情况下它已启用...

这样,将在不询问密码的情况下登录用户 monitor ,其他用户将需要输入其密码。

答案 1 :(得分:1)

有可能,您必须将RSA密钥复制到服务器并启用RSA身份验证。

您可以使用ssh-keygen并按照说明生成密钥,然后使用ssh-copy-id将其复制到服务器并在服务器上启用PubkeyAuthentication。请确保重新启动sshd.service

资源:openSSH docs

相关问题