首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Capistrano3部署时被拒绝的权限

使用Capistrano3部署时被拒绝的权限
EN

Stack Overflow用户
提问于 2015-09-23 02:35:04
回答 2查看 478关注 0票数 0

我试图通过SSH将Capistrano3连接到git服务器进行部署。使用普通的git命令连接到服务器是可以的。但使用卡皮斯特拉诺并不是。

错误消息

代码语言:javascript
复制
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as serveruser@xx.xx.xx.xx: git exit status: 128
git stdout: Nothing written
git stderr: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
fatal: The remote end hung up unexpectedly

deploy.rb

代码语言:javascript
复制
# config valid only for current version of Capistrano
lock '3.4.0'

set :application, 'Sample'
set :repo_url, 'ssh://serveruser@xx.xx.xx.xx:22/var/lib/git/public_git/sample.git'
set :deploy_to, '/app/Sample'
set :scm, :git

production.rb

代码语言:javascript
复制
server 'xx.xx.xx.xx', user: 'serveruser', roles: %w{app db web}, my_property: :my_value
role :app, %w{serveruser@xx.xx.xx.xx}, my_property: :my_value

set :ssh_options, {
  keys: %w(/Users/localuser/.ssh/id_rsa),
  forward_agent: false,
  auth_methods: %w(password)
  # password: 'please use keys'
}

我漏掉了点吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-23 12:32:06

99/100次,这意味着SSH密钥无法访问Git服务器。看起来您正在成功地登录到服务器。检查以下内容:

  • 您是使用部署密钥还是SSH代理?如果是前者,请确保在服务器上部署到的用户帐户上的默认键有效。如果是后者,请确保ssh-agent正在运行,并且您已经为其设置了ssh-add密钥。
  • 登录到服务器并运行ssh -Tv your-repo-url。它应该返回一条关于成功身份验证的消息。如果没有,请进行调试,直到此命令有效为止。-v的输出将帮助您知道它使用的是哪些键。
  • 如果使用部署密钥,请检查服务器上ssh键是否为chmod 600,~/.ssh目录是否为chmod 700。如果不是这样,那就去做吧。
  • 使用卡斯特拉诺SSH博士帮助调试连接。
票数 1
EN

Stack Overflow用户

发布于 2015-09-23 02:49:03

在黑暗中疯狂地捅了一刀,但这里有一些值得尝试的地方。我认为您可能需要在:ssh_options中指定一个:user。您可以/必须从您的:repo_url中删除teh ://。从您的键位置判断,您甚至可能不需要键:在ssh选项中。另外,确保您的公钥在目标服务器上(这可能是不言而喻的)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32730064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档