我有一台带有固定快照的虚拟机,但我无权安装任何东西。我该如何实现目标?
将密码传递给 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的空密码并确认
- 然后创建用户@主机:密码与 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
。
当要求输入新密码时,只需按回车键即可。