问题标签 [ssh-agent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ssh - 在外部驱动器上存储 ssh 密码
为了访问服务器,我们使用ssh
受密码保护的密钥。
我们想要生成一个长密码,这样密钥本身就不足以访问该机器,而且密码也很难被破解。
ssh-agent
可以存储密码。然而,问题是这样的代理将密码短语存储在客户端的文件中,如果可以访问客户端计算机,则可以更轻松地访问服务器。
是否可以将部分密码短语存储在外部驱动器上。在这种情况下,可以将密码存储在随身携带的 USB 驱动器上,并且访问服务器仍然很方便。如果ssh-agent
可以自动检测驱动器,这样就可以调用ssh
而不必将外部驱动器“绑定”到第一个驱动器,那就太好了ssh-agent
。
因此,一个人应该只能访问服务器,因为他/她可以访问客户端(存储ssh
密钥)和外部驱动器(存储密码)。
git - 使用多个身份登录时启动 ssh-agent
我使用的计算机上有多个 ssh rsa 密钥。这导致我有一个位于如下的文件~/.ssh/config
:
这是此链接要添加的内容:
遵循问题Start ssh-agent on login的建议后,我可以在打开终端时加载 ssh 密钥,如下所示:
如何在终端启动时自动添加我的其他 rsa 密钥之一的身份serverid
?bitbucketid
linux - SSH - 只输入一次密码
上$ ssh localhost
,我被要求提供密码。为每次登录提供密码既乏味又烦人。
所以,我用密码创建了 ssh 密钥。
我已将 to 的内容复制~/.ssh/id_rsa.pub
到~/.ssh/authorized_keys
现在,$ ssh localhost
我被要求提供密码。没有改进,但我没有提供密码,而是提供了密码。
我遇到了将公钥添加到 ~/.ssh/authorized_keys 不会让我自动登录,但它并没有解决我的问题。正如评论所述,如果密钥是使用密码创建的,它将始终要求输入密码。
但是,如果ssh 密钥是在没有 passphrasessh
的情况下创建的,则任何操作都不需要密码。
这篇文章的关键是冗长的标志-v
和
在搜索时,PEM_read_PrivateKey failed
我遇到了很多帖子,其中一些来自 stackoverflow 本身。
但找不到合适的解决方案。
然后我遇到了设置无密码、无密码的 ssh,它说明了使用 ssh 代理自动输入密码。
或者
但同样,它只解决了那个特定的会话。每次我开始一个新会话时,我都必须执行
我可以将它添加到我的 .bashrc 或 .zshrc 中,但是为每个会话输入密码很烦人。
有没有办法在会话中使用相同的 ssh-agent?
ubuntu - ssh-add 添加不正确的密钥
背景:我正在尝试编写一个使用 capistrano 部署 rails 应用程序的 jenkins 作业。作为其中的一部分,我需要将已复制的 ssh 密钥添加到该环境中 jenkins 用户的 .ssh 文件夹中。我已在该文件夹中正确设置了 id_rsa 和 id_rsa.pub 的所有者、组和权限。
我收到错误Net::SSH::AuthenticationFailed: Authentication failed for user deploy@[server]
。经调查,当我以 jenkins 用户身份运行以下命令时,会发生以下情况:
ssh-add ~/.ssh/id_rsa
到目前为止,一切都很好。
但是 ~/.ssh/id_rsa.pub 的公钥不是由ssh-add -L
如果我在本地机器上执行相同的步骤,则会添加正确的密钥,并且我可以 ssh 进入环境。
为什么 ssh-add 似乎添加了错误的密钥(我似乎在系统的其他任何地方都找不到)?
upstart - 在停止新贵作业时杀死生成的 ssh-agent 实例
我有一个新贵配置来启动我的守护进程(每次都与其他服务器建立 ssh 连接)。为了建立 ssh 连接,它使用存储在 ssh-agent 中的密钥。因此,在启动脚本中,我正在创建一个 ssh-agent 实例,但是在停止时我无法停止它。
在 pre-stop 部分,SSH_AGENT_PID 是空的,所以我无法杀死。这里可能是什么问题..
还有一个问题:我有很多生成的 ssh-agent 进程,我无法使用 ssh-agent -k 杀死它们,因为它是由其他一些 shell 生成的。有没有办法可以杀死这些进程(无需使用 kill 命令强行杀死它)。
windows - git ssh 代理正在运行,但没有保存我的用户名或密码
最初设定
我正在使用 Posh-Git,并遵循了Phil Haack 的使用 SSH 的建议。也就是说,我做了以下事情:
- 安装 msysgit。
- 更新 Posh-Git
- 将 ssh-agent 添加到 PATH。
初始测试
现在,当我启动 Powershell 时,ssh-agent 确实启动了。这很好。如果我运行,Get-Proces
我可以看到它:
但是,当它启动时,它不会询问我的用户名和密码。情况不妙。
此外,在单个 PowerShell 会话期间,git 反复询问我的用户名和密码,并且永远不会记住它。
查找我的 SSH 密钥
我的 SSH 密钥位于 中C:\Users\<my-user>\.ssh
,我可以在其中看到两个文件:
我已经跑了ssh-add "C:\Users\<my-user>\.ssh\github_rsa"
。
代理仍然不记得我的凭据。
使用 Git Shell 进行测试
msysgit 带有 Git Shell,当我运行它时,身份验证就完美地通过了。从来没有要求我输入用户名和密码。
我在这里查看了配置 Git over SSH 登录一次的答案,建议检查我们使用的是 https 还是 ssh 协议。
在我的 Git Shell 和正常的 Windows PowerShell 提示符下,存储库都使用 HTTPS。
linux - 钥匙串 ssh-agent 信息不正确
我正在使用钥匙串,它可以完美地使用 ssh-agent 管理我的钥匙。
我想检查每个 linux 主机上 ssh-agent 的状态。我试过:
在本地,此命令有效并且是连贯的。
但是使用远程SSH命令,我不知道为什么结果不一样..:
也许有人可以解释我?这并不令人不安,因为我会监控 ssh-agent 状态..
谢谢。
编辑:即使启用了 SSH 代理转发,远程命令也只返回代理的本地状态。其他远程命令有效,无论是否加载密钥..
linux - 请解释 Linux bash exec 和 ssh-agent 行为
根据https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s3-openssh-config-ssh-agent.html
我需要执行exec /usr/bin/ssh-agent $SHELL
,据我了解,它exec
用我指定的程序替换了我当前的 shell。
我读了http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/ssh-agent.1?query=ssh-agent&sec=1,其中指出“如果给出命令行,这是作为代理的子进程执行。当命令死亡时,代理也会死亡。
所以我猜我期望的是 bash 被 ssh-agent 替换,但是因为我指定了一个命令行,所以执行了一个新的 bash,然后执行了 ssh-agent,并替换了旧的 bash。
到底发生了什么?
git - ssh conflicts / github permission denied but authentication success, what is wrong?
I already have a github account and using it without a problem using gitbash -clone/pull/push. Now I currently created another github account to work with a friend and realized I couldn't push due to account conflict or whatever it is called. So I created a new ssh key and went through a few threads but still didn't get it working but I am able to authenticate between two different git accounts but now I couldn't push or clone due to access rights.
I don't remember the exact all steps I did because I was going through different threads and trying different things. By the way I'm using windows.
1st
I went to the /.ssh
and changed my previous id_rsa
and id_rsa.pub
into id_rsa_acc1
and id_rsa_acc2
2nd
I created another key using
ssh-keygen -t rsa -C "email@email.com"
my previous ssh uses the same email too
3rd
I went to the /.ssh
and changed my new id_rsa
and id_rsa.pub
into id_rsa_acc2
and id_rsa_acc2
4th
in .ssh
folder I created a file called config
and added
5th
I login into github.com with my acc2 and added the ssh key in /.ssh/id_rsa_acc2.pub
into github settings>SSH keys
6th
7th
8th
I couldn't find one of the error messages anymore but when I tried to push into the acc2 it said something about denying access because of acc1 or something like that. Then I tried using clone by ssh url and couldn't even clone any of these two accounts from github.
Now when I try to clone/push/pull I only get such error message Permission denied (publickey). fatal: Could not read from remote repository.
Can someone please give me a hand?
linux - 使用自定义 ssh-agent 与 Github 通信
我继承了一个当前已损坏的部署系统,我不知道如何修复它。
基本设置是向 ssh-agent 添加 3 个密钥,并通过 ThoughtWorks 的 Go 部署软件从 Github 中提取一些私有存储库。
我似乎需要运行一个可由多个用户帐户访问的 ssh-agent。
我已经启动了一个 ssh-agent 并向它添加了密钥,然后我能够从命令行克隆私有存储库而没有问题,但是当主应用程序(使用相同的用户帐户)尝试克隆它时失败了权限被拒绝错误。
我的猜测是,由于某种原因,应用程序无法访问持有密钥的 ssh-agent。
以下是我的说明:
- 导出 SSH_AUTH_SOCK=/var/go/ssh-agent.sock
- ssh-add ~/.ssh/go_deploy_id_rsa
- ssh-add ~/.ssh/go_id_rsa
- ssh-add ~/.ssh/deploy_id_rsa
当我设置 SSH_AUTH_SOCK 环境变量时,它似乎会杀死任何正在/正在运行的 ssh-agent,当我发出 ssh-add 命令时,我得到了经典:
“无法打开与您的身份验证代理的连接。”
所以基本上我如何启动 ssh-agent 并让它使用我之前定义的 SSH_AUTH_SOCK 并保持运行,以便 Go 应用程序在与 Github 通信时使用它?
这个用途可以工作,所以我知道该设置在技术上是有效的。
已解决:原来我使用的 ssh-agent 套接字已经过时了。删除套接字并重新创建它允许添加密钥并再次进行通信。