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

问题描述 投票:-2回答:2

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

如何配置特定用户(让我们称之为monitor)使用以下命令连接到服务器但不要求密码(因为它将用于cron,因此需要自动化)

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

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

假设服务器有3个用户'监视','鲍勃'和'保罗'

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

unix authentication ssh password-protection ssh-keys
2个回答
2
投票

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

只需检查服务器上是否已启用PubkeyAuthentication,但默认情况下已启用...

这样就可以在不询问密码的情况下记录用户监视器,并且需要其他用户输入密码。


1
投票

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

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

资源:openSSH docs

© www.soinside.com 2019 - 2024. All rights reserved.