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


849

Tôi đang cố gắng triển khai mã của mình lên 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 nó vẫn gặp lỗi này.


giải pháp của sebarmeli có làm việc cho 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 "khóa heroku: add ~ / .ssh / <rsa_key_filename> .pub"
Michael Merchant

6
Tôi đã gặp vấn đề này gần một năm trước và giải pháp được đề xuất vào thời điểm đó không chính xác với tôi, nhưng tôi đã tìm ra cách nào đó (lúc này tôi không nhớ chính xác mình đã làm gì). Sebarmeli đã trả lời một lúc sau khi tôi không còn cần sự trợ giúp nữa, mặc dù có vẻ như câu trả lời của anh ấy khá phổ biến trong số những người gặp phải vấn đề tương tự. Nếu nó làm mọi người hài lòng, tôi sẽ chọn câu trả lời của anh ấy là câu trả lời đúng.
vich

3
Các dòng sau đã giải quyết vấn đề cho tôi. tài khoản heroku: thiết lập tài khoản của bạn
Mingming

Có vẻ như một số dịch vụ heroku đã ngừng hoạt động hôm nay-- hãy chắc chắn kiểm tra trang web của họ để biết các vấn đề nếu bạn gỡ lỗi này!
Philip Guin

Tôi gặp vấn đề tương tự, tất cả những gì tôi cần làm là heroku loginviết email và mật khẩu và thử lại.
Alejandro Veintimilla

Câu trả lời:


1474

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 HOMEbiế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/.sshthư 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 $HOMEhayecho %HOME% (Windows)

Để đặt HOMEthư 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 .sshthư 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:

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

  2. 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.


31
Không làm việc cho tôi. Tôi đã phải thu hồi khóa cũ của mình và sau đó để ứng dụng heroku tạo và tải lên một khóa mới cho tôi. Xem liên kết về cách làm điều này được cung cấp bởi Lithium.
boronomiakur

9
chỉ là một lưu ý cho mọi người nói rằng nó không hoạt động. bạn cần chắc chắn 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 làm như vậy với mac.
Ryan

92
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ỉ cần sử dụng:heroku keys:add
vansan

13
Ngoài ra, hãy thử ssh-keygen -t rsa -C "your_email@youremail.com"nếu vẫn gặp lỗi, để tạo một 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

3
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

146

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 & 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 mật khẩu nào, đừng sử dụng khoảng trắng, hãy điền vào cụm mật khẩu, nhưng đừng quên nó.

Sau khi tạo khóa, bạn cần thêm nó, 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

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

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


Trên thực tế tôi cũng loại bỏ các tập tin dưới đây, nhưng không chắc chắn rằng chúng là imp,

C: \ Users \ yourusername.heroku \ certientals và C: \ Users \ yourusername.ssh \ unknown_hosts


21
Điều này đã giải quyết nó cho tôi. Tôi nghĩ lý do là, tôi đã có tệp 'github_rsa' Github for Windows, nhưng không có tệp id_rsa.
msiemens

Không hoạt động 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 trên git bashdấu nhắc lệnh để chạy ssh-keygen. cảm ơn.
Rots

Điều này làm việc cho tôi và dường như là giải pháp tốt nhất. Câu hỏi hay hơn là tại sao tôi phải lặp lại điều này mỗi ngày
Paul Renton

3
Điều này làm việc cho tôi. Nếu bạn đang sử dụng Git Bash trên Windows, khóa 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 một cái gì đó khác lên Heroku.
Kiv

90

Vấn đề này đã gây rối với tôi trong vài ngày.

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

1) Tìm hiểu những gì 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 tệp ~ / .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

3
Đ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 Usertrong 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 gỡ bỏ nó.
Erik J

2
Đảm bảo rằng "IdentityFile" có tệp không công khai (như ở trên), chứ không phải tệp công khai. Vì một số lý do, bản của tôi có phiên bản công khai và nó đã xuất hiện một lỗi cho biết các quyền đối với tệp không chính xác.
Kevin K

Thêm hostthông tin này vào tập tin cấu hình của tôi đã giải quyết vấn đề cho tôi. Tôi đã tạo khóa heroku rsa và các quyền mặc định trên heroku.pub đã gây ra lỗi khi tôi cố gắng git push. Tôi đã phải chmod 600 heroku.pubvà sau đó khi tôi đẩy nó làm việc.
Dylan Valade

1
IdentityFile ~/.ssh/ssh-dsslà đường dẫn đến khóa riêng . Bạn muốn nhập khóa riêng của bạn ở đây, không phải khóa công khai của bạn .
HairOfTheDog

1
Câu trả lời này là những gì đặt tôi trên đầu trang. Tôi đang chạy windows 7 64 bit. Có một số bước khác có ích như: ssh-keygen -t rsa -f id_rsa sau đó xóa bất kỳ khóa heroku nào và thêm một khóa vừa tạo: phím heroku: xóa khóa 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

61

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


2
Heroku không bao giờ nhắc tôi thêm một. Vì vậy, tôi phải làm ssh-keygen trước. Điều này đã giúp. Cảm ơn!
Kal

Cái này làm việc cho tôi Tạo một 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

35

Tôi gặp vấn đề tương tự vì tôi không có khóa công khai, 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


1
Vẫn nhận được lỗi. Tôi thử nhiều thứ khác nhau, giải quyết nó, rồi gặp vấn đề tương tự vào tuần tới ... Tôi tự hỏi tại sao Heroku lại như thế này.
JGallardo

31

Nếu bạn là người dùng windows, các giải pháp khác ở đây có lẽ 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 các khóa của tôi từ C:\users\user\.sshsangC:\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 lên heroku.

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


2
Đối với tôi đó là c: \ msysgit \ .ssh. Tôi vừa tạo một đường nối thư mục đến thư mục .ssh trong thư mục cá nhân của tôi.
Colin Bowern

Vấn đề tương tự ở đâ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 khóa từ thư mục Người dùng của tôi, cùng với cách khắc phục này nhưng nó đã hoạt động.
Haris Krajina

12
ĐỪNG LÀM ĐƯỢC! Đ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 ta 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 \ <tên người dùng> trên Win7) và sao chép .ssh dir ở đó.
dmajkic

Hơn nữa với @dmajkic, trên Win7, hãy xem Git cho Windows Tip này để đặt %HOME%biến môi trường thành %USERPROFILE%.
Steve Eynon

29

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

ssh-add ~/.ssh/my_heroku_key_rsa

1
Tương tự ở đây. Cảm ơn bạn. Ngoài ra, đảm bảo khóa riêng của bạn có các quyền thích hợp liên quan đến 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.
Mike Atlas

15

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

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

Vì vậy, tôi đã cố đổi tên các khóa của mình thành 'id_rsa' và 'id_rsa.pub' và nó đã 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 chưa nhìn sâu hơn.


3
Làm việc cho tôi (Windows 7 64 bit). Tôi đã cài đặt GitHub cho Windows và nó đặt tên cho các khóa là GitHub_rsa. Có cách nào để xác định khóa Git nào nên sử dụng không?
Spongeboy

11

Nếu bạn đã tải lên khóa rồi, hãy thử xóa khóa và sau đó tải lại bằng khóa mới.

 heroku keys:remove //removes the existing key
 ssh-keygen -t rsa //generates a new key in ~/.ssh folder
 heroku keys:add    //uploads the new key, if no arguments r passed then the key generated                              
                    //in default directroy i.e., ~/.ssh/id_rsa is uploaded
 git push heroku

cái này nên hoạt động


Cảm ơn, điều này đã làm việc cho tôi. Tôi đã sử dụng các phím heroku: xóa thay vì các phím heroku: xóa.
Peter de Ridder

1
Sai,Must specify KEY to remove
JGallardo

7

Tôi đã tự sát trong 3 ngày để thử mọi sự kết hợp có thể để cố gắng làm cho nó hoạt động - cuối cùng tôi đã thử làm DSA khóa và nó đã hoạt động.

Hãy thử DSA thay vì RSA nếu nó không hiệu quả với bạn.

(Tôi đang sử dụng Ubuntu 11.10, ruby ​​1.8.7, heroku 2.15.1)


1
Tôi đã nói chuyện với sự hỗ trợ của Heroku và họ đề nghị đây là một giải pháp tạm thời. Nó làm việc cho tôi, nhưng tôi chắc chắn đó không phải là câu trả lời cho mọi trường hợp.
Sốt McBoss

3
Không chắc tại sao câu trả lời này xứng đáng được bỏ phiếu ... Nó đã giải quyết vấn đề cho tôi và nó gợi ý một câu trả lời cho vấn đề.
Sốt McBoss

Tôi đã gặp vấn đề ngược lại ... mặc dù các tài liệu của Heroku dev nói rằng bạn có thể sử dụng khóa DSA (ssh-dss), tôi vẫn nhận được thông báo 'Quyền bị từ chối' cho đến khi tôi chuyển sang khóa RSA
brandonjp

đã làm cho tôi. Chuyển đổi giữa dsa và rsa dường như hoạt động nếu bạn thay đổi phím sau khi heroku tạo và trước khi đẩy git.
Pramod

và làm cách nào để tạo khóa DSA và thêm nó vào heroku?
coiso

6

Trên Windows 7.64 bit, giải pháp trên (Onur Turhan's) đã làm việc với tôi với những thay đổi nhỏ như dưới đây

C:\Users\MyName > heroku login

Nhập email / mật khẩu

C:\Users\MyName >ssh-keygen -t rsa -f id_rsa

Điều này tạo ra hai tệp (id_rsa và id_rsa.pub) trong thư mục c: \ Users \ MyName (Không có trong thư mục .ssh)

heroku keys:add id_rsa.pub
git clone git@heroku.com:some-heiku-xxxx.git -o heroku

Tôi đoán việc thêm tệp "id_rsa.pub" chính xác là quan trọng nhất. Sau khi tạo khóa chung bằng keygen, chỉ cần xác minh rằng bạn đang thêm khóa chính xác bằng cách xem dấu thời gian khi nó được tạo.


5

Một lệnh duy nhất hoạt động:

heroku keys:add

Nó sẽ làm một cái nếu nó không tồn tại.


Downvote, điều này không trả lời trong bối cảnh với lỗi. Tôi đã xóa, tạo mới và thêm các khóa và vẫn gặp sự cố. đề nghị của bạn heroku keys:addkhông phải là một câu trả lời đầy đủ.
JGallardo

5

Tôi gặp vấn đề này khi TortoiseGIT được cài đặt trên máy của tôi. Sau khi thay đổi biến môi trường GIT_SSHtừ

"c:\Program Files\TortoiseGit\bin\TortoisePlink.exe"

đến

"c:\Program Files (x86)\Git\bin\ssh.exe"

và làm theo hướng dẫn này với ssh-keygenkeys:add, nó hoạt động!


bạn đã làm theo hướng dẫn nào?
eckes

một ở đây từ Onur Turhan
zooli

Sử dụng ssh do Git IS cung cấp là một giải pháp rất tốt. Nó thực sự nhận được sự hiểu biết phức tạp về plink / cuộc thi / putty ở đây ...
Stéphane

4

Đẩy đang làm việc cho tôi và sau đó dừng lại đột ngột.

Nếu heroku api đang gặp thời gian chết, bạn sẽ gặp lỗi này khi bạn cố gắng đẩy.

Kiểm tra:

https://status.heroku.com/

trước khi hoảng sợ quá.


3

Trình tự theo dõi

$ heroku login
$ ssh-keygen -t rsa
$ heroku keys:add

Khi thực hiện câu lệnh thứ hai, nó sẽ yêu cầu nhập liệu, chỉ cần nhấn Enter (return) ba lần và một phím sẽ được thêm vào.


rất nhiều người đã có câu trả lời chính xác như vậy. và không hoạt động như đã nêu.
JGallardo

2

Câu trả lời được đưa ra ở trên KHÔNG hoạt động, nhưng phát hiện ra tôi cần phải thực hiện thêm một số bước trước khi nó hoạt động.

  1. Tôi đã xóa tất cả các tệp id_rsa * và tạo SSH mới bằng hướng dẫn này .
  2. Sau đó, tôi phá hủy ứng dụng heroku. Đã xóa tệp ~ / .heroku / thông tin đăng nhập.
  3. Lệnh 'heroku tạo' (và vì tệp thông tin đăng nhập bị xóa, nó sẽ nhắc bạn về email / mật khẩu của bạn.
  4. FINALLY gõ 'heroku key: add' và nó sẽ tải lên tệp ~ / .ssh / id_rsa.pub mặc định.
  5. Nó hoạt động! Chà .... YMMV nhưng tôi thực sự hy vọng điều này có thể giúp ích khi tôi phải vật lộn cả ngày để cố gắng tìm ra điều này! Haha

2

Đối với tất cả những người đã thử mọi thứ được đề cập ở trên trên Windows 7 mà vẫn không hoạt động, đây là những gì tôi đã làm: - mở GitBash.exe từ thư mục Git C: \ Program Files (x86) \ Git \ (don ' Mở một dấu nhắc lệnh, điều này sẽ không hoạt động). - thêm các mục sau như đã đề cập ở trên , nhưng bạn phải xóa #

Host heroku.com
Hostname heroku.com 
Port 22 
IdentitiesOnly yes 
IdentityFile ~/.ssh/ssh-dss
TCPKeepAlive yes 
User joe@workstation.local

Bây giờ chạy git đẩy heroku master và nó sẽ hoạt động.


Nâng cao điều này là tốt. Đã dành 6 giờ với ngày hôm qua và không cảm thấy đây là kiến ​​thức tôi quan tâm cả. Tôi có thể đẩy github thông qua powershell và dấu nhắc lệnh, nhưng chỉ Git Bash làm việc cho tôi cho heroku. Bây giờ nó hoạt động mọi lúc. Tôi cũng kết thúc việc đăng nhập heroku trước khi git đẩy heroku master. Có thể không cần thiết, nhưng bây giờ, đó là sự mê tín khiến tôi phải làm điều đó. Cơn ác mộng gì
JMDenver 17/2/2015

1

Có vẻ như ~/.ssh/authorized_keystập tin của bạn không được thiết lập chính xác. Kiểm chứng:

  • Đó là trong con đường chính xác.
  • Các quyền của tập tin là 0600.
  • Các quyền của ~/.ssh0700.

Tôi khá mới mẻ với những thứ này vì vậy rất tiếc nếu điều này nghe có vẻ ngu ngốc, nhưng tệp khóa SSH công khai của tôi chỉ là một loạt các ký tự (gen khóa tiêu chuẩn) không có thông tin nào khác. Tôi đã nhận được tệp SSH này khi tôi thiết lập git trên máy tính của mình. Tôi giả định đây sẽ là khóa SSH công khai tương tự mà tôi sẽ sử dụng để triển khai mã heroku của mình. Hay heroku có khóa SSH công khai riêng mà tôi cần tạo?
vich

1
Có, bạn có thể sử dụng lại khóa SSH công khai của mình cho nhiều máy chủ khác nhau. Tôi không chắc chính xác Heroku hoạt động như thế nào, nhưng tôi có thể thấy rằng câu trả lời của tôi không thực sự áp dụng trong trường hợp này. Bạn có thể xác minh rằng khóa của bạn đã được giao diện web của họ chấp nhận. Nếu mọi thứ vẫn kiểm tra, hãy thử liên hệ với nhóm hỗ trợ của họ.
cdhowie

Cảm ơn vì lời khuyên! Tôi đã liên hệ với hỗ trợ heroku. Tôi sẽ cập nhật một khi tôi có câu trả lời.
vich

Đồng ý. Tôi muốn nghe vấn đề là gì quá. :)
cdhowie

1
Vì vậy, vấn đề là với việc đặt tên tệp khóa SSH công khai. Khi tôi đã tạo tập tin ban đầu, tôi cũng đã đổi tên nó, điều này gây ra các vấn đề trong việc triển khai vì git sẽ không kết nối đúng và do đó làm cho việc triển khai heroku cũng thất bại. Để giải quyết vấn đề, tôi đã tạo một khóa SSH công khai mới và thêm nó vào github trước khi thử lại. Bây giờ nó kết nối! Cảm ơn bạn đã giúp đỡ!
vich

1

Tôi phải làm:

$ ssh-keygen -t rsa  
$ heroku keys:add  

Sau đó, nó hoạt động:

$ git push heroku master  

1

Kiểm tra cấu hình .ssh của bạn cho heroku. Chuyển đến thư mục .ssh và mở tệp cấu hình

cd ~/.ssh
subl config

'Subl' dành cho Văn bản cao siêu, nhưng bạn có thể sử dụng bất kỳ trình soạn thảo nào bạn muốn. Tìm dòng "IdentityFile" và đảm bảo rằng nó có khóa không công khai được liệt kê:

IdentityFile "/Users/ircmullaney/.ssh/my_ssh"

không phải

IdentityFile "/Users/ircmullaney/.ssh/my_ssh.pub"

Điều đó đã làm nó cho tôi. Tôi không chắc tại sao phiên bản công khai của tôi có trong tệp cấu hình, nhưng nó đã xảy ra và nó đã gây ra lỗi:

Permissions 0644 for '/Users/ircmullaney/.ssh/my_ssh.pub' are too open.

1

Tôi vẫn gặp vấn đề sau khi thử tất cả những ý tưởng này. Đây là vấn đề của tôi:

Kho lưu trữ heroku từ xa của tôi đã bị phá hỏng. Tôi làm mới nó như sau:

git remote -v

Sau đó loại bỏ heroku đó là sai:

git remote rm heroku

Sau đó thêm cái mới

git remote add heroku git@heroku.com:sitename.git

Bạn có thể lấy tên trang web từ trang cài đặt Heroku cho ứng dụng của mình. Chúc may mắn!


1

Vấn đề tôi gặp phải là trên Windows và luôn luôn bất cứ khi nào tôi chạy "phím heroku: thêm" nó đã chọn các phím github. Vì vậy, đây là các bước tôi làm theo để giải quyết vấn đề

  1. đã đi đến thư mục .ssh trong thư mục "Tài liệu và Cài đặt" và xóa các phím trung tâm git
  2. chạy lệnh heroku key: add

Lệnh trên yêu cầu tôi tạo khóa mới và sau đây là đầu ra Không thể tìm thấy khóa chung hiện có. Bạn có muốn tạo một cái không? [Yn] Y Tạo khóa công khai SSH mới. Tải lên khóa công khai SSH C: / Tài liệu và Cài đặt / Quản trị viên / .ssh / id_rsa.pub ... đã hoàn tất! Viên ngọc 'heroku' đã bị phản đối và được thay thế bằng Heroku Toolbelt, tải xuống và cài đặt từ https://toolbelt.heroku.com .

  1. chạy lại lệnh heroku: thêm

Lệnh trên sẽ không cung cấp đầu ra sau Tìm khóa công khai hiện có: C: / Documents and Settings / Admin / .ssh / id_rsa.pub Tải lên khóa công khai SSH C: / Documents and Settings / Admin / .ssh / id_rsa.pub .. . làm xong

  1. Bây giờ sử dụng git đẩy heroku master

đối với tôi, sử dụng các bước trên đã giải quyết được vấn đề và có thể triển khai ứng dụng trên đám mây.


1

Tôi đã trải qua vấn đề tương tự; làm theo các bước sau sẽ giúp:

  1. Đầu tiên, đăng nhập: đăng nhập heroku
  2. Xóa tất cả các phím: phím heroku: xóa
  3. Xóa tất cả các tệp trong thư mục cục bộ (tất cả .pubcác tệp và know_host) trong.ssh/ folder
  4. Đăng nhập lại: đăng nhập heroku - bạn sẽ nhắc không có khóa, vì vậy hãy làm theo các hướng dẫn trên màn hình.

Không hoạt động để giải quyết vấn đề. Tôi đã đăng nhập, thêm khóa thành công và vẫn nhận đượcPermission denied (publickey).
JGallardo

Tại sao chúng ta cần xóa tất cả các tệp trong thư mục .ssh?
Starx

0

Tôi chỉ muốn thêm rằng thư mục không nhất thiết phải là C: \ Users \ [tên người dùng] \. Ssh. Đây là thư mục mà bạn đã tạo khóa công khai của mình.

Chẳng hạn, thư mục nhà của tôi trong Windows đã được đổi thành C: \ [tên người dùng]. Thư mục chính của bạn trong thư mục con .ssh là nơi tốt nhất và có khả năng nhất mà bạn có thể đã tạo các khóa của mình. Bạn có thể kiểm tra thư mục chính của mình trong Windows bằng lệnh:

    echo %HOMEPATH%

0

Nếu bạn muốn sử dụng "sudo", ví dụ:

sudo git clone git@heroku.com......... -o heroku

bạn cũng nên tạo khóa ssh cho người dùng root của bạn.

sudo su
cd /root/.ssh  
ssh-keygen -t rsa
....
heroku keys:add id_rsa.pub

và nó sẽ hoạt động.

nếu bạn không sử dụng người dùng root, hãy tạo khóa ssh trong thư mục người dùng của bạn.

cd /home/user/.ssh

Xin lỗi nếu câu của tôi bị rối tung ...


0

Hãy thử sửa chữa quyền trong Disk Utility (Mac OS X). Giúp tôi


0

Đầu tiên, đảm bảo các tệp ẩn được hiển thị trong máy Mac của bạn. Nếu không làm:

  • Mở terminal và gõ vào defaults write com.apple.Finder AppleShowAllFiles TRUE
  • killall Finder

Bước tiếp theo:

  • Đi để Users/user_name/.ssh/loại bỏ tất cả các tập tin.
  • Mở loại thiết bị đầu cuối trong ssh-keygen -t dsa
  • Sau đó heroku keys:add ~/.ssh/id_dsa.pub

NB Tôi đã làm điều đó trong Mac OSX 10.7.2 Lion. Mặc dù thủ tục nên giống nhau ở những người khác quá.


0

Tôi cũng gặp phải vấn đề này. Tôi đang sử dụng Mac OSX. Cách tôi sửa là đăng nhập với tư cách quản trị viên

sudo su

mật khẩu


0

Giải pháp của dmajkic giúp tôi cuối cùng:

Đối với người dùng Windows, điều đó có nghĩa là: git client không tìm thấy khóa của bạn. Kiểm tra các khóa trong c: \ Users \ UserName.ssh \ và! biến môi trường HOME = c: \ Users \ UserName \


0

Đây là những gì làm việc cho tôi. Trang web heroku không được thêm vào máy chủ đã biết của bạn. Chuyển đến kho lưu trữ view-git-git. Từ đó nhân bản kho lưu trữ. Khi bạn sao chép nó, hãy xóa kho lưu trữ vừa tạo và sau đó nhập nó từ menu tập tin. Làm điều này vì khi bạn sao chép kho lưu trữ, nó không thêm nó vào chế độ xem thám hiểm. Bây giờ bạn nên có kho git và khung nhìn explorer.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.