Bạn phải tải khóa công khai của mình lên Heroku:
heroku keys:add ~/.ssh/id_rsa.pub
Nếu bạn không có khóa công khai, Heroku sẽ nhắc bạn thêm một khóa tự động hoạt động trơn tru. Chỉ dùng:
heroku keys:add
Để xóa tất cả các khóa trước của bạn, hãy làm:
heroku keys:clear
Để hiển thị tất cả các khóa hiện có của bạn làm:
heroku keys
BIÊN TẬP:
Ở trên dường như không làm việc cho tôi. Tôi đã loay hoay với HOME
biến môi trường và vì vậy SSH đã tìm kiếm các khóa trong thư mục sai.
Để đảm bảo SSH kiểm tra khóa trong thư mục chính xác, hãy:
ssh -vT git@heroku.com
Sẽ hiển thị các dòng (Mẫu) sau đây
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Connecting to heroku.com [50.19.85.156] port 22.
debug1: Connection established.
debug1: identity file /c/Wrong/Directory/.ssh/identity type -1
debug1: identity file /c/Wrong/Directory/.ssh/id_rsa type -1
debug1: identity file /c/Wrong/Directory/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version Twisted
debug1: no match: Twisted
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Host 'heroku.com' is known and matches the RSA host key.
debug1: Found key in /c/Wrong/Directory/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /c/Wrong/Directory/.ssh/identity
debug1: Trying private key: /c/Wrong/Directory/.ssh/id_rsa
debug1: Trying private key: /c/Wrong/Directory/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).
Từ phía trên, bạn có thể thấy rằng ssh tìm kiếm các khóa trong /c/Wrong/Directory/.ssh
thư mục không phải là nơi chúng ta có các khóa công khai mà chúng ta vừa thêm vào heroku (sử dụng heroku keys:add ~/.ssh/id_rsa.pub
) ( Xin lưu ý rằng trong windows OS ~
đề cập đến HOME
đường dẫn trong win 7/8 LàC:\Users\UserName
)
Để xem làm thư mục chính hiện tại của bạn: echo $HOME
hayecho %HOME%
(Windows)
Để đặt HOME
thư mục của bạn một cách chính xác (theo chính xác, ý tôi là thư mục mẹ của .ssh
thư mục, để ssh có thể tìm các khóa trong thư mục chính xác) tham khảo các liên kết sau:
SO Trả lời về cách đặt biến môi trường Unix vĩnh viễn
Câu hỏi SO liên quan đến ssh tìm kiếm các khóa trong thư mục sai và một giải pháp cho cùng.