# Write the SSH-KEY to the disk
fs.writeFile "/cgrepos/.ssh/#{repo.id}.pub", repo.public_key, (err) ->
throw err if err
fs.writeFile "/cgrepos/.ssh/#{repo.id}", repo.private_key, (err) ->
throw err if err
exec "chmod 400 /cgrepos/.ssh/#{repo.id} && eval `ssh-agent -s` && ssh-add /cgrepos/.ssh/#{repo.id}", (error) ->
throw error if error
# First, delete the git repo on the hard drive, if it exists
exec "rm -rf #{git_location}", options, (error) ->
throw error if error
# Second, clone the repo into the location
console.log "Cloning repo #{repo.id}: #{repo.repo_name} into #{git_location}. This could take a minute"
exec "git clone #{repo.url} #{git_location}", options, (error) ->
throw error if error
Tôi đang cố gắng trong nút (sử dụng coffee
cho những người tuyệt vời). Nhưng vì lý do nào đó, khi nó chạy, nó cho tôi một lỗi: Error: Command failed: conq: repository access denied. deployment key is not associated with the requested repository.
Không thể git clone bằng cách thêm ssh-key vào Node.js
Không chắc mình đang làm gì sai. Nếu tôi chạy các lệnh đó từ dòng lệnh trực tiếp, mọi thứ có vẻ hoạt động tốt. Ý tưởng nào?
Bạn đã thử sao chép trực tiếp điều này bằng 'ssh', lấy git ra khỏi phương trình? Mặc dù bạn không thể nhận được bất kỳ thứ gì hữu ích từ máy chủ của Bitbucket (từ thông báo lỗi tôi cho rằng đó là những gì bạn đang sử dụng), bạn sẽ thấy "Bạn có thể sử dụng git hoặc hg để kết nối với Bitbucket. Truy cập trình bao bị vô hiệu hóa". nếu nó hoạt động; bạn có thể thử 'ssh -v' để gỡ lỗi nếu nó không hoạt động. –
Một điều khác bạn có thể thử là tạo một kịch bản lệnh shell bao bọc để chạy 'exec ssh -v" $ @ "' và đặt biến môi trường 'GIT_SSH' để git sẽ chạy SSH ở chế độ tiết. Sau đó, bạn có thể thấy cách 'git' đang chạy SSH và có thể cung cấp cho bạn một số manh mối. –