a

Câu hỏi Quyền bị từ chối (publickey) khi triển khai mã heroku. gây tử vong: Kết thúc từ xa treo lên bất ngờ


Tôi đang cố gắng triển khai mã của mình cho heroku bằng dòng lệnh sau:

git push heroku master

nhưng nhận được lỗi sau:

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Tôi đã tải lên khóa SSH công khai của mình nhưng vẫn xuất hiện lỗi này.


832


gốc


giải pháp của sebarmeli có phù hợp với bạn không? Tôi không sử dụng khóa rsa có tên "id_rsa.pub" và vừa nhập "các khóa heroku: thêm ~ / .ssh / <rsa_key_filename> .pub" - Michael Merchant
Tôi đã có vấn đề này gần một năm trước và giải pháp đề xuất vào thời điểm đó không chính xác làm việc cho tôi, nhưng tôi đã tìm ra nó bằng cách nào đó (vào thời điểm này tôi không nhớ những gì tôi đã làm chính xác). Sebarmeli đã trả lời một lúc sau khi tôi không còn cần sự giúp đỡ nữa, mặc dù có vẻ như câu trả lời của ông khá phổ biến trong số những người gặp vấn đề tương tự. Nếu nó làm cho mọi người hạnh phúc, tôi sẽ chọn câu trả lời của anh ấy như câu trả lời đúng. - mmichael
Dòng sau giải quyết vấn đề cho tôi. tài khoản heroku: đặt tài khoản của bạn - Mingming
Dường như một số dịch vụ heroku đang giảm xuống - hãy chắc chắn kiểm tra trang web của họ xem có vấn đề gì không nếu bạn đang gỡ lỗi này! - Philip
Tôi có cùng một vấn đề, tất cả những gì tôi cần làm là heroku login sau đó viết email và mật khẩu và thử lại. - Alejandro Veintimilla


Các câu trả lời:


Bạn phải tải khóa công khai 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 liền mạch. Chỉ dùng:

heroku keys:add

Để xóa tất cả các khóa trước của bạn, hãy:

heroku keys:clear

Để hiển thị tất cả các phím hiện có của bạn, hãy làm:

heroku keys

CHỈNH SỬA:

Ở trên dường như không làm việc cho tôi. Tôi đã rối tung với HOME biến môi trường và vì vậy SSH đang tìm kiếm các khóa trong thư mục sai.

Để đảm bảo rằng SSH kiểm tra khóa trong thư mục chính xác, hãy làm:

ssh -vT git@heroku.com

Sẽ hiển thị các dòng (mẫu) sau

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ừ trên bạn có thể quan sát 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 tôi có các khóa công khai mà chúng tôi vừa thêm vào heroku (sử dụng heroku keys:add ~/.ssh/id_rsa.pub ) ( Xin lưu ý rằng trong hệ điều hành windows ~ đề cập đến HOME con đường thắng 7/8 là C:\Users\UserName )

Để xem thư mục chính hiện tại của bạn, hãy làm: echo $HOME hoặc là echo %HOME% ( Các cửa sổ )

Để đặt HOME thư mục chính xác (theo đúng tôi nghĩa là thư mục mẹ của .ssh thư mục, để ssh có thể tìm kiếm các khóa trong thư mục chính xác), hãy tham khảo các liên kết sau:

  1. SO Trả lời về cách thiết lập biến môi trường Unix vĩnh viễn

  2. SO câu hỏi liên quan đến ssh tìm kiếm các phím trong thư mục sai và một giải pháp cho cùng.


1449



Không làm việc cho tôi. Tôi đã phải thu hồi chìa khóa cũ của tôi và sau đó để cho ứng dụng heroku tạo và tải lên một cái mới cho tôi. Xem liên kết về cách thực hiện điều này do Lithium cung cấp. - borisdiakur
chỉ là một lưu ý cho những người nói rằng nó không hoạt động. bạn cần đảm bảo rằng bạn đã tạo khóa công khai ssh. help.github.com/mac-set-up-git để biết thêm thông tin về cách thực hiện với mac. - Ryan
nếu bạn không có khóa công khai, heroku sẽ nhắc bạn thêm một cách tự động hoạt động liền mạch. Chỉ dùng: heroku keys:add - vansan
Cũng cố gắng ssh-keygen -t rsa -C "your_email@youremail.com" nếu vẫn gặp lỗi, để tạo tệp khác.pub và sử dụng tệp đó trong lệnh được đề xuất trong câu trả lời này - Tom Roggero
Bạn có thể phải tạo / tạo lại khóa trước khi thêm vào heroku. whatibroke.com/?p=284 đã làm việc cho tôi cho Windows 7. - Khalid Saifullah


Tôi đã có cùng một vấn đề, các bước dưới đây làm việc cho tôi,

->heroku login

abc@gmail.com & mật khẩu

->cd C:\Users\yourusername\.ssh    (OR for cygwin shell ->cd ~/.ssh)

->ssh-keygen -t rsa -f id_rsa

nếu yêu cầu bất kỳ cụm từ mật khẩu nào không sử dụng trống, hãy điền cụm từ mật khẩu, nhưng đừng quên cụm mật khẩu đó.

Sau khi tạo khóa bạn cần thêm, như vậy

$ ssh-add

và nó đến heroku

->heroku keys:add "id_rsa.pub"

thay đổi thư mục thành không gian làm việc, hơn

->git clone git@heroku.com:stark-dawn-1234.git -o heroku

sử dụng cụm mật khẩu bạn đã đặt ở trên.


Trên thực tế tôi cũng xóa các tệp bên dưới, nhưng không chắc chắn rằng chúng là imp,

C: \ Users \ yourusername.heroku \ credientals và C: \ Users \ yourusername.ssh \ known_hosts


144



Điều này giải quyết nó cho tôi. Tôi nghĩ lý do là, tôi có một tập tin 'github_rsa' từ Github for Windows, nhưng không có tệp id_rsa. - msiemens
Cảm ơn! Kỳ lạ họ không đề cập đến điều này trong các tài liệu bắt đầu: - / - Jason
Đã không làm việc với trình cài đặt Openssl. Tôi đã phải cài đặt CopSSH để có được chương trình ssh-keygen.exe. - djangofan
Trên Windows 7, tôi phải làm điều này git bash dấu nhắc lệnh để chạy ssh-keygen. cảm ơn. - Rots
Điều này làm việc cho tôi. Nếu bạn đang sử dụng Git Bash trên Windows, phím PHẢI được đặt tên là id_rsa.pub hoặc nó sẽ không hoạt động, ngay cả khi bạn tải lên một cái gì đó khác để Heroku. - Kiv


Vấn đề này đã rối tung với tôi trong một vài ngày.

Điều này có thể giúp.

1) Tìm hiểu những gì các phím bạn có trong Heroku bây giờ.

$ heroku keys
=== 1 key for joe@example.com
ssh-dss AAAAB8NzaC...DVj3R4Ww== joe@workstation.local

2) Xây dựng một tập tin ~ / .ssh / config:

$ sudo vim ~/.ssh/config

Chỉnh sửa với thông tin này

Host heroku.com
Hostname heroku.com 
Port 22 
IdentitiesOnly yes 
IdentityFile ~/.ssh/ssh-dss # location and name of your private key
TCPKeepAlive yes 
User joe@workstation.local

89



Cảm ơn ... Nó làm việc cho tôi như một sự quyến rũ và tiết kiệm rất nhiều thời gian của tôi! - Nimesh Nikum
Điều này làm việc cho tôi là tốt, sau khi không có gì khác đã làm! Tuy nhiên, nên có một ngắt dòng trước User trong dòng cuối cùng đó. Ngoài ra, nó phàn nàn về # bình luận, vì vậy tôi chỉ cần loại bỏ nó. - Erik J
Đảm bảo rằng "IdentityFile" có tệp không công khai (như ở trên), không phải tệp công khai. Đối với một số lý do tôi đã có phiên bản công khai và nó đã ném một lỗi nói rằng các điều khoản cho tập tin là không chính xác. - Kevin K
IdentityFile ~/.ssh/ssh-dsslà con đường dẫn đến riêng tư Chìa khóa. Bạn muốn nhập riêng tư chìa khóa ở đây, không phải của bạn công cộng Chìa khóa. - HairOfTheDog
Câu trả lời này là những gì đặt tôi lên hàng đầu. Tôi đang chạy windows 7 64 bit. Có một số bước khác đã giúp như: ssh-keygen -t rsa -f id_rsa sau đó xóa bất kỳ phím heroku nào và thêm khóa heroku vừa tạo: phím heroku: xóa các phím heroku: thêm C: \ Users \ username \ .ssh \ id_rsa.pub và sau đó sửa đổi một chút tệp ở trên thành IdentityFile C: /Users/windows_username/.ssh/id_rsa - Paul


Đây là liên kết giải thích cách quản lý khóa ssh của bạn: http://devcenter.heroku.com/articles/keys#adding_keys_to_heroku


62



Heroku không bao giờ nhắc tôi thêm một. Vì vậy, tôi đã phải làm ssh-keygen đầu tiên. Điều này đã giúp. Cảm ơn! - Kal
đó là cực kỳ hữu ích. Cảm ơn. - Rob Allen
Cái này làm việc cho tôi. Đã tạo khóa mới, trong trường hợp của tôi ghi đè lên khóa cũ, sau đó chọn id_rsa.pub để sử dụng với heroku. Cảm ơn - jfoutch


Tôi đã có cùng một vấn đề gây ra tôi không có chìa khóa công cộng, vì vậy tôi đã làm:

heroku keys:clear
heroku keys:add

Điều đó sẽ tạo ra một khóa công khai và sau đó nó hoạt động tốt


34



Điều này làm việc cho tôi. cảm ơn! - Nick Siderakis
Đã làm cho tôi!! - Goaler444
Điều này làm việc cho tôi, cảm ơn bạn. - hjgraca
tuyệt vời và đơn giản! - mikebz
Vẫn gặp lỗi. Tôi thử những thứ khác nhau, giải quyết nó, sau đó nhận được cùng một vấn đề trong tuần tới ... Tôi tự hỏi tại sao Heroku lại như thế này. - JGallardo


Nếu bạn là người dùng windows, các giải pháp khác ở đây có thể sẽ không giải quyết được vấn đề của bạn.

Tôi sử dụng Windows 7 64-Bit + Git-1.7.7.1-preview20111027 và giải pháp là sao chép khóa của tôi từ C:\users\user\.ssh đến C:\Program Files (x86)\Git\.ssh. Đó là nơi mà khách hàng git này tìm kiếm các phím khi đẩy vào heroku.

Tôi hi vọng cái này giúp được.


31



Đối với tôi, nó là c: \ msysgit \ .ssh. Tôi vừa tạo một thư mục nối với thư mục .ssh trong thư mục cá nhân của mình. - Colin Bowern
Tôi đã phải làm điều tương tự cho WinXP. Bây giờ nó hoạt động! Cảm ơn. - Sumod
Cùng một vấn đề ở đây, nhưng tại sao tôi không biết. Mỗi lần tôi thêm các khóa, nó hiển thị sử dụng các phím từ thư mục Người dùng của tôi, cùng với sửa lỗi này nhưng nó đã hoạt động. - Haris Krajina
ĐỪNG LÀM! Điều này hoạt động vì HOME trống và nó mặc định là thư mục exe hiện tại. Nếu ai đó quản lý để đăng nhập với tư cách Khách, anh ấy có thể lấy khóa riêng của bạn. Đặt HOME trong Cài đặt người dùng nâng cao thành% HOME_DRIVE %% HOMEPATH%, (hoặc C: \ Users \ <username> trên Win7) và sao chép .ssh dir tại đó. - dmajkic
Hơn nữa để @dmajkic, trên Win7 thấy điều này Git cho Windows Mẹo để thiết lập %HOME% biến môi trường %USERPROFILE%. - Steve Eynon


Đây là giải pháp cho tôi:

ssh-add ~/.ssh/my_heroku_key_rsa

29



Điều này đã giúp tôi. - Zhaidarbek
Tương tự ở đây. Cảm ơn bạn. Ngoài ra, hãy đảm bảo khóa riêng của bạn có các quyền thích hợp được liên kết với nó. chmod 600 ~/.ssh/heroku_rsa - Arnaud Brousseau
cảm ơn bạn - đây cũng là vấn đề của tôi, và tôi cũng cần phải làm theo lời khuyên của Arnaud trước. - Mike Atlas


Để chia sẻ kinh nghiệm của tôi:

Git (bản cài đặt của riêng tôi) đang tìm chìa khóa có tên 'id_rsa'.

Vì vậy, tôi đã cố gắng đổi tên các khóa của tôi thành 'id_rsa' và 'id_rsa.pub' va no đa hoạt động.

Btw, tôi chắc chắn có một cách khác để làm điều đó nhưng tôi đã không nhìn sâu hơn được nêu ra.


15



Điều này làm việc cho tôi khi không có gì khác giúp. - kilves76
Làm việc cho tôi (Windows 7 64bit). Tôi đã cài đặt GitHub cho Windows và đặt tên cho khóa là GitHub_rsa. Có cách nào để chỉ định khóa Git nào nên sử dụng? - Spongeboy
Làm việc cho tôi (Windows 8). - Sanchit
Bây giờ đó là những gì tôi gọi là báo trước. Cảm ơn! - Priidu Neemre