2014-07-15 16 views
5

Kho lưu trữ của tôi nằm trên Bitbucket. Tôi có một máy Ubuntu mà tôi sử dụng như một máy chủ phát triển (lưu trữ một bản sao cục bộ của tất cả các mã của tôi, apache, php, git, vv). Sự phát triển thực tế được thực hiện trên một máy Windows trong cùng một mạng LAN. Tôi sử dụng một chia sẻ Samba để truy cập trực tiếp vào các tập tin trên máy chủ. Tôi sử dụng PHPStorm làm IDE của mình. Tôi cũng đã cài đặt git trên máy Windows, để sử dụng tích hợp git trong PHPStorm. Và nó hoạt động: Tôi có thể đọc lịch sử kho lưu trữ và cam kết những thay đổi mới với vấn đề.Không thể đẩy vào git từ cửa sổ/phpstorm

Nhưng bây giờ tôi cũng muốn đẩy (để bitbucket) từ PHPStorm. Và đó là những gì thất bại.

Ngay bây giờ, tôi cần phải đăng nhập vào máy chủ Ubuntu của mình để đẩy mã từ đó. Nhưng tôi muốn có thể psuh từ PHPStorm. Nó có thể liên quan đến ssh-keys mà tôi cần tích hợp, nhưng tôi không biết làm thế nào. PHPStorm cho tôi biết những điều sau:

19:22:10.873: git push --progress origin master:master 
java.io.IOException: Authentication failed: 
    at org.jetbrains.git4idea.ssh.SSHMain.authenticate(SSHMain.java:283) 
    at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:157) 
    at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:137) 
fatal: Could not read from remote repository. 
Please make sure you have the correct access rights 
and the repository exists. 

Tôi đã tạo cặp khóa SSH và đặt khóa công khai lên Bitbucket. Tôi chỉ không biết đi đâu từ đây.

+1

PHPStorm có quyền truy cập vào khóa riêng tư và bạn đã hướng dẫn nó sử dụng khóa để xác thực không? – EEAA

Trả lời

9

Trang PhpStorm git Integration người đàn ông không đề cập đến:

  • ssh keys are generated outside PhpStorm. You can follow the instructions from http://inchoo.net/tools/how-to-generate-ssh-keys-for-git-authorization/ or look for other guidelines.
  • Store the ssh keys in the home_directory \.ssh\ folder. The location of the home directory is defined through environmental variables:
    • $HOME for Unix-like operating systems.
    • %userprofile% for the Microsoft Windows operating system.
  • Make sure, the keys are stored in files with correct names:
    • id_rsa for the private key.
    • id_rsa.pub for the public key.
+0

Cảm ơn, đó là một hướng dẫn tuyệt vời :) Tôi đã theo dõi một sai lầm rõ ràng. – onok

+2

Nếu bạn sử dụng nhiều khóa, bạn có thể ghép nối nó với '% userprofile% /. Ssh/config' để chỉ định khóa nào bạn muốn sử dụng cho máy chủ nào. – codemonkee

+0

Chỉ cần một người đứng đầu cho những người thay đổi đường dẫn thư mục máy tính để bàn: PHPStorm sẽ tìm kiếm các khóa SSH trong /. Ssh – rmontagud

1

Nếu bạn đang sử dụng các tùy chọn thực thi SSH bản địa PhpStorm & liên quan đến plink.exe cung cấp với PuTTY, bạn sẽ cần phải kết nối với máy chủ lưu trữ ít nhất một lần để chấp nhận khóa máy chủ của máy chủ. Khi phím được lưu trữ sau đó bạn có thể thêm chìa khóa cá nhân của bạn vào pageant.exe

plink.exe [email protected] 
The server's host key is not cached in the registry. You 
have no guarantee that the server is the computer you 
think it is. 
The server's rsa2 key fingerprint is: 
ssh-rsa 2048 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 
If you trust this host, enter "y" to add the key to 
PuTTY's cache and carry on connecting. 
If you want to carry on connecting just once, without 
adding the key to the cache, enter "n". 
If you do not trust this host, press Return to abandon the 
connection. 
Store key in cache? (y/n) y 
Using username "git". 
Server refused to allocate pty 
Hi username! You've successfully authenticated, but GitHub does not provide shell access. 
+0

đây là chìa khóa để thành công của tôi! nhưng, tôi đang sử dụng xây dựng, nó vẫn còn craps ra trên bản địa. Tôi đã xác định rằng JetBrains đang sử dụng putty hoặc một số phiên bản của nó như được xây dựng. – chiliNUT

+0

Câu hỏi: 'nếu bạn đang sử dụng tùy chọn thực thi SSH gốc trong PhpStorm & liên kết với plink.exe' ** Làm thế nào để bạn yêu cầu JetBrains sử dụng lệnh .exe là ứng dụng khách ssh nguyên bản? ** – chiliNUT

11

Nếu lệnh git của bạn làm việc từ dòng lệnh, nhưng không phải từ bên trong WebStorm, bạn có thể thử chuyển đổi cấu hình WebStorm của bạn để sử dụng "Native" thay vì "Built-in" SSH thực thi.

Để làm điều này, điều hướng các menu cho Files -> Settings -> Phiên bản Control -> Git và sau đó thay đổi thực thi thiết lập thả xuống SSH tới "Native"

+0

Các lệnh Git hoạt động từ dòng lệnh, không phải bên trong phpStorm. NHƯNG tôi đã phải chuyển từ "Built-in" sang "Native" !! Và bây giờ nó hoạt động ... Tất cả trong tất cả, bạn đã giúp tôi x) – LittleBigDev

0

Tôi gặp sự cố này. Các khóa ssh của tôi hoàn toàn ổn khi tôi sử dụng chúng với Git Bash (Windows).

Tôi đã xóa known_hosts từ C: \ Users \ Tên người dùng \ .ssh thư mục của bạn và PHPStorm tự tạo và nó bắt đầu hoạt động.

Mở dự án của tôi khác, nó đã đem lại lỗi sau:

java.io.IOException: There was a problem while connecting to 158.xxx.xxx.xxx::22 
    at com.trilead.ssh2.Connection.connect(Connection.java:791) 
    at com.trilead.ssh2.Connection.connect(Connection.java:577) 
    at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:171) 
    at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:137) 
Caused by: java.net.UnknownHostException: 158.xxx.xxx.xxx:: invalid IPv6 address 
    at java.net.InetAddress.getAllByName(InetAddress.java:1169) 
    at java.net.InetAddress.getAllByName(InetAddress.java:1126) 
    at java.net.InetAddress.getByName(InetAddress.java:1076) 
    at com.trilead.ssh2.transport.TransportManager.createInetAddress(TransportManager.java:165) 
    at com.trilead.ssh2.transport.TransportManager.establishConnection(TransportManager.java:340) 
    at com.trilead.ssh2.transport.TransportManager.initialize(TransportManager.java:449) 
    at com.trilead.ssh2.Connection.connect(Connection.java:731) 
    ... 3 more 
fatal: Could not read from remote repository. 
Please make sure you have the correct access rights 
and the repository exists. 

Và nó bật ra url hẻo lánh của dự án GIT tôi được thành lập sai:

ssh://[email protected]:/home/user/myrepo 

nên là:

[email protected]:/home/user/myrepo 
+0

bạn đã thay đổi điều này ở đâu? – invalidusername

+1

Bạn có thể thay đổi nó bằng lệnh này: git remote set-url origin user @ ip:/your_repo –

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