我正在尝试从 powershell 将 ssh 密钥添加到 Windows 中的 git ssh-agent 中。然而,当我添加它时,它会将其添加到常规 SSH 代理中,而不是 git 代理中。我使用不同的 SSH 代理阅读了 stackoverflow 的答案。我尝试启动代理运行C:\Program Files\Git\cmd> .\start-ssh-agent.cmd并且它正常启动,但是当我尝试执行任何 ssh-add 命令时,我收到错误:
连接到代理时出错:没有这样的文件或目录
我找到的所有文档都是将密钥添加到 .ssh 文件,然后启动 ssh 代理。有没有办法在 Git SSH 代理中获取该目录之外的文件?
我在 Windows 10 v21H2 上使用 Visual Studio Code v1.67 连接到 Ubuntu Server 22.04 计算机。我正在 Windows 上运行 SSH 代理 (v8.1)。我已经ForwardAgent yes在 Windowsconfig文件中设置了。当我启动 Ubuntu 终端时,代理似乎正在 Ubuntu 中运行并拥有我的 Windows 密钥。我可以通过 看到它ssh-add -l。SSH_AUTH_SOCK设置为类似/run/user/1000/vscode-ssh-auth-sock-12345678(指向 的链接/tmp/ssh-XXXXABCDEF/agent.1234)的内容,但未SSH_AGENT_PID设置。
如果我尝试,ssh -Tvvv git@bitbucket.org它不会使用代理中的密钥并询问我的 Ubuntu 密钥密码。详细的 SSH 输出中包含以下消息:
debug2: get_agent_identities: ssh_agent_bind_hostkey: communication with agent failed
debug1: get_agent_identities: ssh_fetch_identitylist: communication with agent failed
Run Code Online (Sandbox Code Playgroud)
我可以启动一个新代理并使用 .ubuntu 在我的 Ubuntu 计算机上添加密钥eval `ssh-agent`; ssh-add。这设置了SSH_AUTH_SOCK和SSH_AGENT_PID。 …
我试图使用sshagent选项scp/ftp文件到windows和linux serers但它没有按预期工作,有人可以帮助我吗?
凭证应该是什么?我使用了使用jenkins创建的加密用户标识和密码值.执行scp文件到server1的命令应该是什么?
该线程是对标题问题的答复:ssh-agent为什么不转发我的SSH证书? 实际上,我在搜索过程中找不到任何信息。我必须阅读ssh-add的C代码 才能解决我的问题。
我获得了有效的SSH证书:
$ ssh-keygen -L -f ~/.ssh/id_rsa-cert.pub
/home/user/.ssh/id_rsa-cert.pub:
Type: ssh-rsa-cert-v01@openssh.com user certificate
Public key: RSA-CERT SHA256:YgFzKPkUdZHLLi8bEKUs5/hLumNoMNG+oDJ+KD6mS3s
Signing CA: RSA SHA256:w+Cjpu/QQUunuojs9Af82ENdBUreCDXo+APao9X4dHw
Key ID: "user_key"
Serial: 0
Valid: from 2017-12-06T10:53:00 to 2017-12-07T10:54:57
Principals:
user
admin
Critical Options: (none)
Extensions:
permit-X11-forwarding
permit-agent-forwarding
permit-port-forwarding
permit-pty
permit-user-rc
Run Code Online (Sandbox Code Playgroud)
这是我的ssh-agent键列表:
$ ssh-add -l
4096 SHA256:YgFzKPkUdAGBPi8bEKUs5/hLumNoAds+oDJ+KD6mS3s user_key (RSA)
Run Code Online (Sandbox Code Playgroud)
当我在远程服务器上进行SSH时,它可以工作。我没有~/.ssh/authorized_keys密码,而且我的密钥可能转发很好,因为我得到了与以前相同的结果。
现在,我想从第一个服务器(使用ForwardAgent yes)通过SSH连接到另一台服务器:
$ ssh srv1
srv1:~$ ssh srv2 -vvv
...
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering …Run Code Online (Sandbox Code Playgroud) 我试图在WSL下使用ssh-agent,但在脚本运行后擦除了SSH参数
来自.bashrc(缩减版)
eval $(ssh-agent)
ssh-add
ssh-add -l
echo "SSH_AGENT_PID is" $SSH_AGENT_PID
echo "SSH_AUTH_SOCK is" $SSH_AUTH_SOCK
Run Code Online (Sandbox Code Playgroud)
然后提示密码短语显示指纹和相关变量
在提示(或单独的脚本)运行后直接
ssh-add -l
echo "SSH_AGENT_PID is" $SSH_AGENT_PID
echo "SSH_AUTH_SOCK is" $SSH_AUTH_SOCK
Run Code Online (Sandbox Code Playgroud)
给
Could not open a connection to your authentication agent.
SSH_AGENT_PID is
SSH_AUTH_SOCK is
Run Code Online (Sandbox Code Playgroud)
(为了便于阅读而整理)
代理仍在运行时使用原始pid(在顶部检查)也尝试eval $(ssh-agent ) > /dev/null并eval $(ssh-agent -s)组合使用
为什么要擦掉这些?ssh-agent工作正常,直到windows更新1709"fall creators update"
信息:linux版本4.4.0-43-Microsoft(Microsoft@Microsoft.com)(gcc版本5.4.0(GCC))#1-Microsoft Wed Dec 31 14:42:53 PST 2014
从这里重新发布:https://superuser.com/questions/1278539/ssh-agent-reset-in-windows-subsystem-for-linux-wsl
我尝试使用 SFTP 添加部署配置,但是出现以下错误:
Connectionxxxxfailed. Exhausted available authentication methods
我正在使用 OpenSSH 配置和身份验证代理。
我检查了 RubyMine 终端内的 ssh 代理,发现多个实例正在运行:
$ ps -ef | grep ssh-agent
501 9724 1 0 Mon02PM ?? 0:00.02 ssh-agent -s
501 14553 1 0 Mon03PM ?? 0:00.02 ssh-agent -s
501 15132 1 0 Mon03PM ?? 0:00.01 ssh-agent -s
501 16276 1 0 Mon04PM ?? 0:00.00 ssh-agent -s
501 16759 1 0 Mon04PM ?? 0:00.01 ssh-agent -s
501 27662 1 0 6:40PM ?? 0:00.01 ssh-agent -s
501 31227 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 sshtunnel 创建到服务器的隧道。我正在使用 ssh-key 和 ssh-agent:
from sshtunnel import SSHTunnelForwarder
with SSHTunnelForwarder(
(proxyhost, 22),
ssh_username=ssh_username,
#ssh_private_key_password=PASSPHRASE, # with this line it works
remote_bind_address=('127.0.0.1', 3306),
) as tunnel:
pass
Run Code Online (Sandbox Code Playgroud)
找到正确的私钥,当我给出密码作为参数时,隧道就建立了(请参见上面的注释行)。
但我已经使用 ssh-agent 解锁了我的 ssh 私钥(只有在重新启动后第一次使用 ssh 时才会要求我提供 ssh 密码)。是否可以让 paramiko/sshtunnel 获取解锁的私钥而不提示输入密码?我想避免将我的密码存储在磁盘上的任何位置。
我可以使用轻松地将pem文件添加到SSH代理中ssh-add,如下所示:
$ ssh-add /home/jsmith/keys/mytest.pem
Run Code Online (Sandbox Code Playgroud)
但我似乎无法删除它们:
$ ssh-add -d /home/jsmith/keys/mytest.pem
Bad key file /home/jsmith/keys/mytest.pem: No such file or directory
Run Code Online (Sandbox Code Playgroud)
尽管pem文件仍然存在...我还没有进行任何移动或更改。为什么刚才从我添加的SSH代理中删除这个pem文件时遇到了很多麻烦?正确的方法是什么?
我想避免使用ssh-add -D(使用大写字母“ D”),因为那样会从SSH代理中删除所有身份,而我只想删除我指定的身份。
当我尝试时git push,出现以下错误。
ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)
我知道我应该在这里指定我自己的密钥,所以我在 bash 窗口中输入以下内容,它工作正常。
ssh-agent bash
ssh-add ~/.ssh/id_rsa_lrz
git push
Run Code Online (Sandbox Code Playgroud)
但是,我想让事情变得简单,所以我有一个像这样的 set_env.sh
ssh-agent bash
ssh-add ~/.ssh/id_rsa_lrz
Run Code Online (Sandbox Code Playgroud)
我像这样在 bash 窗口中输入
. set_env.sh
git push
Run Code Online (Sandbox Code Playgroud)
但是,我ERROR: Repository not found.再次收到错误,但为什么呢?
我正在我的PC(ubuntu)上构建一些git用户来练习Github上的工作流程,并使用这个网站来构建用户.我是第3部分,只是输入eval '$(ssh-agent)'但是回来了
bash: SSH_AUTH_SOCK=/tmp/ssh-FxjmM29tR2ak/agent.3856;: No such file or directory
Run Code Online (Sandbox Code Playgroud)
"有办法解决这个问题吗?
我正在尝试在构建过程中向ssh-agent(docker映像)添加本地私钥。
问题
我已经运行, eval$(ssh-agent -s)并且一旦docker运行,ssh-add /etc/ssh/id_rsa我会收到以下错误:
Could not open a connection to your authentication agent.
目标:我需要在NPM安装过程中克隆一个私有git repo。此本地密钥将允许我针对私人存储库进行身份验证。
====输出片段====
Step 8/16 : RUN eval $(ssh-agent -s)
---> Running in 195ffeb1f84f
Agent pid 8
---> 0fcbc89d362f
Removing intermediate container 195ffeb1f84f
Step 9/16 : RUN ssh-add /etc/ssh/id_rsa
---> Running in ae99039e1fba
Could not open a connection to your authentication agent.
The command '/bin/sh -c ssh-add /etc/ssh/id_rsa' returned a non-zero code: 2
Run Code Online (Sandbox Code Playgroud)