2012-11-13 28 views
6

Tải lên Heroku nhiều lần trước và không biết thời điểm này là gì-- có thể vì tôi đang sử dụng internet công cộng?Heroku - Nhập khóa công cộng SSH và vẫn nhận được lỗi bị từ chối (publickey)

Dù sao, vì vậy tôi đã thêm một khóa công khai mới với

>heroku keys:add 
Found existing public key: C:/Users/Chris/.ssh/id_rsa.pub 
Uploading SSH public key C:/Users/Chris/.ssh/id_rsa.pub...done 

>git push heroku master 
Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 

Tại sao tôi không thể push to Heroku?

Tôi đã kiểm tra chìa khóa của tôi

phím Heroku

và thiết bị đầu cuối của tôi đã đưa ra một cách chính xác, vì vậy nó nên được làm việc. Bất cứ ai cũng làm sáng tỏ?

+1

chạy 'ứng dụng heroku' xem ứng dụng của bạn có ở đó không? –

Trả lời

4

Có lẽ phiên ssh không biết nơi nào để tìm chìa khóa tin liên quan đến khóa công khai của bạn, có thể xảy ra nếu %HOME% không được định nghĩa để C:/Users/Chris.
(và nhớ, HOME không được định nghĩa theo mặc định trên Windows)

Bạn có thể:

  • đảm bảo HOME được thiết lập
  • định nghĩa một tập tin %HOME%/.ssh/config
 
Host heroku 
Hostname heroku.com 
Port 22 
IdentitiesOnly yes 
IdentityFile /C/Users/Chris/.ssh/id_rsa # location and name of your private key 
TCPKeepAlive yes 
User git 
  • trong phiên bash, check the permissions (cho .ssh và các phím).
  • sao chép bản sao của heroku: git clone heroku:yourRepo
  • thực hiện một số cam kết và đẩy từ đó.
+0

bị hạn chế về thời gian và chỉ chuyển máy. đang đi trên đường một lần nữa sớm với máy này, và sẽ thử giải pháp của bạn sau đó. cảm ơn đã giúp đỡ! –

2

Bạn đang sử dụng Git để đẩy các thay đổi của mình và Git sử dụng SSH chứ không phải Heroku.

Từ kinh nghiệm của tôi, chạy heroku keys sẽ không cung cấp thông tin về danh tính được tải vào tác nhân xác thực SSH của bạn. Để làm được điều đó, bạn cần chạy ssh-add -l, sẽ liệt kê tất cả dấu vân tay của các ký tự được tải vào đó.

Để tải một danh tính vào đại lý xác thực SSH của bạn, bạn cần chạy: ssh-add -K ~/.ssh/your_private_key. Sử dụng -K sẽ lưu trữ cụm mật khẩu của bạn trong chuỗi khóa.

Điều này sẽ hoạt động, nếu bạn cũng có khóa công khai của bạn trong máy chủ Heroku từ xa, tất nhiên.

Các vấn đề liên quan