问题标签 [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.

0 投票
2 回答
6868 浏览

git - 为什么 ssh-agent 需要 root 访问权限?

我刚刚安装了 Archbang,并试图克隆我的一个 Git 项目,这需要 SSH 密钥。

过去,我在 Ubuntu 和 RedHat 机器上遵循了 Github 成功指南,但由于某种原因,它在我的新 Arch 安装中并不适合我。

我已经使用以下命令成功生成了我的 SSH 公钥/私钥对:

但是当我继续启动 SSH 代理并添加我的公钥时,我遇到了问题。

但是,如果我以 root 身份运行它,这是成功的:

但我很确定我不想以 root 身份进行 SSH 操作。

继续前进,当我尝试使用时ssh-add,我也收到权限错误,但这次是标准用户和 root 用户:

所以现在我真的很困惑。

我尝试以 root 身份打开一个 bash 进程来执行此操作,但是 1)我不喜欢这个想法,并且 2)它仍然无法正常工作,但这次是出于不同的原因:

出于某种原因,在 root shell 中执行此操作会导致我的 SSH 密钥密码被拒绝;我已经用最简单的密码尝试了多次,所以我很肯定我给了它正确的密码。

我不知所措。我真的不喜欢所有这些sudo东西,我不知道为什么它似乎是必要的;我已经检查了 .ssh 目录及其文件的权限,甚至删除了整个目录并重新生成密钥以确保它们没有使用错误的权限生成。

有人可以帮我吗?我究竟做错了什么?

编辑:为了响应建议的答案,我再次尝试使用我的主目录中的套接字位置。这些是结果:

在这一点上,我很困惑为什么这些权限是不可接受的,以及为什么它认为我的公钥是私钥。但我很幽默,将权限更改为 600 并尝试再次添加。

现在我已经到了和以前类似的地方:它不喜欢我为我的 SSH 密钥创建的密码。这是怎么回事?!这真是令人费解。

0 投票
1 回答
797 浏览

bash - 即使定义了 SSH_AUTH_SOCK,也无法打开与身份验证代理的连接

首先我启动 ssh-agent

我确认这SSH_AUTH_SOCK是通过运行设置的echo $SSH_AUTH_SOCK,它令人鼓舞地返回/tmp/ssh-oCsFfHvR3345/agent.3345

然而,当我跑步时sudo ssh-add ~/.ssh/id_rsa,我得到

此外,ssd-add -l回报The agent has no identities.

0 投票
1 回答
1805 浏览

ubuntu - 在 ssh 登录时仍然被要求输入密码

在运行 CentOS v6.2 的同一台目标机器上,我从我的 Macbook 和另一台 Ubuntu 机器上执行了相同的程序集。Macbook ssh login-less 现在可以完美运行,但 Ubuntu 服务器仍然无法无密码连接到目标机器。这是我所做的:

2-然后我将键名添加到 Macbook 和 Ubuntu 中的 ~/.ssh/config 文件中。

3-我确保将目标机器~/.ssh~/.ssh/authorized*权限修复为 700/750。

  • 其他一些信息:

    Ubuntu ssh 版本为:OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012

    Macbook ssh 版本为:OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011

    目标 CentOS v6.2 ssh 版本为:OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

这是结果ssh -v foo

任何人都可以指导我为什么会这样?

0 投票
0 回答
988 浏览

git - 使用 crontab 时权限被拒绝(公钥)

我正在尝试设置一个 cronjob 来执行“git fetch”

我已正确生成 ssh 密钥以通过 ssh 连接到 github(我已将公钥放入我的 github 帐户)。它在命令行中完美运行。

(我已经使用 ssh-add 添加了 priv 密钥,所以当我连接到 github 时,它只询问密码一次)

但是当我创建一个crontab -e(使用普通用户,而不是 root)

我收到此错误:

就像 cron 工作不知道密钥一样?

我怎样才能使这项工作?

谢谢你

0 投票
0 回答
1208 浏览

php - 通过 ssh 在远程服务器上自动进行 git 克隆,并带有代理转发

我有一个使用 ssh 代理登录到远程服务器的脚本。它会尝试克隆一个私有 git 存储库。但是,我无法让 github 接受登录。

最后一个确实有效。但它也要求我在服务器上拥有密钥,我宁愿阻止。

当我手动执行此操作时,它可以工作。

这是使这项工作起作用的转发,如果我跳过-A,则克隆失败。

在脚本中,我已经验证了:

  • 代理(由脚本使用)持有密钥(ssh-add -l列出它);
  • github 接受通过部署密钥(这是我正在使用的密钥)克隆特定的 repo;
  • 我没有使用其他密钥登录,即我暂时从我的 github 帐户中删除了我的普通个人密钥;

但脚本可能不使用转发。这是phpseclib的限制吗?我可以以使用转发的方式设置本地 ssh 代理吗?

0 投票
0 回答
711 浏览

git - Windows 上的 Git 和 ssh-agent

我已经删除了 Git 并从这里http://git-scm.com/download/win 在 Windows 7 机器上重新安装。

我遇到的问题是,只要 ssh-agent 启动,它就会一直使用 CPU,并且机器上的风扇会打开,例如运行 SourceTree 会启动它。

在此处输入图像描述

我的同事和我有同样的机器,没有这个问题。关于为什么会发生这种情况的任何想法?

0 投票
1 回答
968 浏览

ssh - 在远程 ssh 会话中启动 ssh-agent

我连接到运行 xubuntu 的服务器并在那里启动 ssh-agent。然后我在远程服务器上执行 ssh-add 并运行需要输入密码多次的 rysnc 命令。

使用我的解决方案,我只需输入一次。但是我怎样才能永久启动 ssh-agent 呢?我想在多个 ssh 会话中重用它。

到目前为止我的解决方案:

0 投票
1 回答
1918 浏览

node.js - 如何将 npm 链接与只能通过 ssh 访问的 git 存储库一起使用

我正在尝试使用一些支持库开发节点应用程序。这些项目都存在于通过 ssh 访问的私有存储库中。用户名和密码身份验证不是一种选择。

到目前为止,我一直在将 git 存储库 url 添加到 package.json

这不是很好,因为它不会导致可重复的构建,这意味着同时开发客户端代码和库需要推动每一个微小的变化。

npm link似乎是解决此问题的理想选择,但在库目录中运行 npm link 会产生以下错误:

很公平,它正在尝试修改系统全局位置。

那个“|” 遮挡“g”是一个动画微调器。我已经确定这就是当我尝试以路由方式访问存储库时 git 所做的;无论出于何种原因,它都无法看到我~/.ssh/id_rsa或我的 ssh 代理。

我想我可以通过弄清楚如何为 root 运行 ssh-agent 来解决这个问题,但这对我来说没有意义,npm link甚至需要从 git 中读取。它只修改了我的计算机的配置,所以它为什么要访问网络?这让我觉得我做错了什么。

0 投票
2 回答
2565 浏览

sftp - phpseclib - 未找到 SSH_AUTH_SOCK

我与另一家正在从常规 FTP 转移到 SFTP 以进行连接的公司合作。他们告诉我,我现有的用户名和密码是相同的,但我现在需要通过端口 22 上的 SFTP 连接。我有几个 PHP 脚本可以做一些基本的事情,比如连接到他们的网站,获取目录列表,并每天上传和下载一个文件。这些在 FTP 上都可以正常工作,所以我只需要将协议换成 SFTP。

在做了一些研究之后,似乎一致认为 phpseclib 是使用 PHP 执行 SFTP 的最简单和最强大的方法。我的服务器正在运行 Linux 和 Apache。我下载了该库并尝试仅运行 phpseclib 给出的基本示例,但出现错误:

注意:在第 244 行的 System/SSH/Agent.php 中找不到 SSH_AUTH_SOCK

当我查看时Agent.php,我看到脚本正在寻找在或SSH_AUTH_SOCK中定义。我一定遗漏了一些明显的东西,但我不知道如何克服这个错误。$_SERVER$_ENV

0 投票
1 回答
828 浏览

ssh - jenkins ssh 代理转发

jenkins@jenkins-server --- 验证(使用 RSA 密钥)---> git@gitlab-server

jenkins@jenkins-server --- 验证(使用 RSA 密钥)---> user@qa-server

从命令行输出如预期

从詹金斯作业运行与“执行外壳”构建步骤完全相同的命令,输出是相同的(如预期的那样)。

当使用“通过 SSH 发送文件或执行命令”构建步骤时,jenkins 能够连接到,user@qa-server但是ssh -T git@gitlab-server远程命令失败并显示

权限被拒绝,请重试。

权限被拒绝,请尝试

再次。权限被拒绝(公钥、密码)。

在这种特殊情况下,似乎ssh-agent没有运行。qa-server

所有服务器都运行 Ubuntu 服务器。我已经安装并配置了 jenkins SSH 代理插件。

如何调试这个(和/或修复)。我怎样才能看到詹金斯正在运行的确切命令?