Capistrano 和 Corkscrew 路径错误
Capistrano and Corkscrew PATH error
我正在尝试使用 Capistrano 部署我的 Rails 应用程序,但是当涉及到 "git ls-remote" 时,我收到以下错误:
$ /usr/bin/env git ls-remote --heads git@git.<server>:<project>.git
/bin/bash: line 0: exec: corkscrew: not found
DEBUG [a5205e2a] ssh_exchange_identification: Connection closed by remote host
DEBUG [a5205e2a] fatal: The remote end hung up unexpectedly
如果我尝试 运行 服务器上的命令没有问题。我还在 gitlab 中为 "deployer" 用户获得了部署 ssh 密钥。
Corkscrew 位于 ~/bin/corkscrew 下并添加到 PATH 变量中。
$ echo $PATH
/home/deployer/.rbenv/shims:/home/deployer/.rbenv/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/deployer/bin
$ corkscrew
corkscrew 2.0 (agroman@agroman.net)
usage: corkscrew <proxyhost> <proxyport> <desthost> <destport> [authfile]
$ which corkscrew
~/bin/corkscrew
更新:
这是我的 ~/.ssh/config:
Host *
ProxyCommand corkscrew <server> 8088 %h %p ~/.ssh/proxyauth
虽然 ~/.ssh/proxyauth 文件包含代理用户的凭据。
如果您需要更多信息,请告诉我。
问题似乎是 ssh
找不到 corkscrew
可执行文件。我仔细检查了我的本地 ~/.ssh/config
文件,并使用了其中 corkscrew
可执行文件的完整路径:
Host *
ProxyCommand /usr/local/bin/corkscrew <server> 8088 %h %p ~/.ssh/proxyauth
(因为我在 OS X 上并通过 Homebrew 安装了 corkscrew
,它位于 /usr/local/bin
。)
您能否尝试更新 ~/.ssh/config
以包含 corkscrew
可执行文件的完整路径?像这样(我不知道 ~
是否有效,如果无效,您可能必须使用完整路径):
Host *
ProxyCommand ~/bin/corkscrew <server> 8088 %h %p ~/.ssh/proxyauth
我正在尝试使用 Capistrano 部署我的 Rails 应用程序,但是当涉及到 "git ls-remote" 时,我收到以下错误:
$ /usr/bin/env git ls-remote --heads git@git.<server>:<project>.git
/bin/bash: line 0: exec: corkscrew: not found
DEBUG [a5205e2a] ssh_exchange_identification: Connection closed by remote host
DEBUG [a5205e2a] fatal: The remote end hung up unexpectedly
如果我尝试 运行 服务器上的命令没有问题。我还在 gitlab 中为 "deployer" 用户获得了部署 ssh 密钥。
Corkscrew 位于 ~/bin/corkscrew 下并添加到 PATH 变量中。
$ echo $PATH
/home/deployer/.rbenv/shims:/home/deployer/.rbenv/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/deployer/bin
$ corkscrew
corkscrew 2.0 (agroman@agroman.net)
usage: corkscrew <proxyhost> <proxyport> <desthost> <destport> [authfile]
$ which corkscrew
~/bin/corkscrew
更新:
这是我的 ~/.ssh/config:
Host *
ProxyCommand corkscrew <server> 8088 %h %p ~/.ssh/proxyauth
虽然 ~/.ssh/proxyauth 文件包含代理用户的凭据。
如果您需要更多信息,请告诉我。
问题似乎是 ssh
找不到 corkscrew
可执行文件。我仔细检查了我的本地 ~/.ssh/config
文件,并使用了其中 corkscrew
可执行文件的完整路径:
Host *
ProxyCommand /usr/local/bin/corkscrew <server> 8088 %h %p ~/.ssh/proxyauth
(因为我在 OS X 上并通过 Homebrew 安装了 corkscrew
,它位于 /usr/local/bin
。)
您能否尝试更新 ~/.ssh/config
以包含 corkscrew
可执行文件的完整路径?像这样(我不知道 ~
是否有效,如果无效,您可能必须使用完整路径):
Host *
ProxyCommand ~/bin/corkscrew <server> 8088 %h %p ~/.ssh/proxyauth