我试图通过SSH将Capistrano3连接到git服务器进行部署。使用普通的git命令连接到服务器是可以的。但使用卡皮斯特拉诺并不是。
错误消息
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 unexpectedlydeploy.rb
# 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, :gitproduction.rb
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'
}我漏掉了点吗?
发布于 2015-09-23 12:32:06
99/100次,这意味着SSH密钥无法访问Git服务器。看起来您正在成功地登录到服务器。检查以下内容:
ssh-agent正在运行,并且您已经为其设置了ssh-add密钥。ssh -Tv your-repo-url。它应该返回一条关于成功身份验证的消息。如果没有,请进行调试,直到此命令有效为止。-v的输出将帮助您知道它使用的是哪些键。~/.ssh目录是否为chmod 700。如果不是这样,那就去做吧。发布于 2015-09-23 02:49:03
在黑暗中疯狂地捅了一刀,但这里有一些值得尝试的地方。我认为您可能需要在:ssh_options中指定一个:user。您可以/必须从您的:repo_url中删除teh ://。从您的键位置判断,您甚至可能不需要键:在ssh选项中。另外,确保您的公钥在目标服务器上(这可能是不言而喻的)。
https://stackoverflow.com/questions/32730064
复制相似问题