如何在没有本地操作系统登录的情况下使用 ssh 客户端

如何在没有本地操作系统登录的情况下使用 ssh 客户端

我有类似服务器的机器(它们不是工作站,而是全自动的),我需要它们能够运行打开客户端 ssh 连接的脚本(到第三方服务器,如 github),并且我需要它以自动化方式运行。

我可以使用私有 ssh 密钥执行此操作,但问题是机器将私有 ssh 密钥存储在具有用户权限的用户目录中,需要用户运行脚本。我尝试更改 ssh 密钥的权限,但 ssh 客户端抱怨这不安全。

无论我最终是否使用 ssh 密钥,我都需要一种方法来从启动时安全地打开客户端 ssh 连接,而无需任何本地操作系统登录。

我对如何在 Linux 和/或 Windows 上实现这一点的答案很感兴趣。

答案1

在 Windows 中,您可以使用任务计划程序使应用程序以特定用户身份运行:

在此处输入图片描述

注意安全选项。您需要选中“无论用户是否登录都运行”复选框,然后选中“更改用户或组”,并选择设置该选项的用户。系统会要求输入密码。

答案2

我可以使用私有 ssh 密钥来做到这一点,但问题是机器将私有 ssh 密钥存储在具有用户权限的用户目录中,需要用户运行该脚本。

不对。请查看 SSH 客户端的文档,了解如何使用存储在文件系统中任意位置的私钥文件。

对于 OpenSSH 检查ssh_config(5) - 身份文件

此外,任何自动化流程都以特定用户的身份在任何操作系统中运行。因此,只需确保为此服务用户/工具帐户(或无论您如何称呼它)正确设置私钥文件的所有权和权限即可。

相关内容