如何自动化 ssh 密码 Windows/Git bash - 已经安装好软件,无需安装

如何自动化 ssh 密码 Windows/Git bash - 已经安装好软件,无需安装

我有一台带有固定快照的虚拟机,但我无权安装任何东西。我该如何实现目标?

将密码传递给 ssh 连接 Windows 10,使用 git bash 无需安装任何东西,也无需输入密码。

有些操作可能只执行一次,但不可能每次双击脚本文件时都执行一次。如果我需要执行除双击之外的任何操作(输入传递或将计算机添加到受信任源、指纹、执行 ssh-agent 等)。

美观、简单、普遍的解决方案:

在这里我将发布我迄今为止所做的事情以及哪些不适合。

尝试过的解决方案1:

ssh-keygen ssh-复制-id[电子邮件保护] 远程控制[电子邮件保护]

不适合,因为它需要密码,但这次需要密钥

生成公钥/私钥 RSA 密钥对。输入要保存密钥的文件 (/c/Users/user/.ssh/id_rsa):

尝试解决方案 1.1

如果我做了这样的事情:

eval `ssh-agent`
# Add the identity (private key) to the agent
ssh-add /c/users/user/.ssh/id_rsa
ssh [email protected]

结果也不合适:

代理 pid 2262 输入 /c/users/user/.ssh/id_rsa 的密码:

已进行故障排除:

服务器可能未配置为接受公钥身份验证。确保服务器上的 /etc/ssh/sshd_config 包含 PubkeyAuthentication yes。记得在服务器上重新启动 sshd 进程。

如果尝试以 root 身份登录,服务器可能未配置为允许 root 登录。确保 /etc/sshd_config 包含 PermitRootLogin yes、PermitRootLogin inhibit-password 或 without-password。如果设置为 forced-commands-only,则必须手动配置密钥以使用强制命令(请参阅 ~/.ssh/authorized_keys 中的 command= 选项)。

确保客户端允许公钥认证。检查 /etc/ssh/config 是否包含 PubkeyAuthentication yes。

尝试解决方案 2

如果我设置空密码,它仍然会要求输入密码

[电子邮件保护]的密码:

目标是在不提示的情况下将我的密码传递给服务器。

解决办法是什么:

必须做一次的动作。

1.使用 ssh-keygen 创建 ssh 密钥

ssh-keygen

1.1 输入ssh-keygen的空密码并确认

  1. 然后创建用户@主机:密码与 ssh-copy-id 命令关联

ssh-copy-id [email protected]

2.1 首先,它会要求添加服务器的指纹,请写“是”。它只做一次,以确保该主机是可信的,或者说是经常访问的,并且在列表中已知主机文件。

2.2 系统会询问“[电子邮件保护]“。请不要将此密码与 ssh-keygen 生成的密码(为空)混淆 - 它们是不同的实体。

所以这次只需输入远程主机的密码”[电子邮件保护]

完成这些步骤后,您可以简单地发出以下命令来

ssh [email protected]

你已经完成了,所以你可以简单地用一行代码启动你的 server.sh 文件。这适用于 Windows 10 + git bash

PS 重新启动后,当我用一行启动我的 server.sh 文件时,它可以按预期工作,它直接登录而无需提示密码。

答案1

不适合,因为它需要密码,但这次需要密钥

删除密钥上的密码或生成一个新密码。

-p 请求更改私钥文件的密码,而不是创建新的私钥。程序将提示输入包含私钥的文件、旧密码,并两次输入新密码。

man ssh-keygen

当要求输入新密码时,只需按回车键即可。

相关内容