How to use EGit with SSH on Windows? - eclipse

I am trying to import a git repository from remote into Eclipse 3.6 with EGit 2.1. I have generated a new SSH key and have also added the pub_key to authorized keys on server side. But I always get the error: read time out. - After Branch selection.
When I clone the repository with same credentials from cygwin or from git bash it works very well.
Has anybody an idea?

Does Eclipse see your new ssh keys ?
To check this open "Preferences > General > Network Connections > SSH2"
in tab "General":
check if "SSH2 home" is pointing to your ~/.ssh folder
check if private key is listed, otherwise add it
in tab "Key Management" try to load the (private) key you want to use

The problem was the remote connection timeout. Increasing it, has solved the problem:
Preferences --> Team --> Git: "Remote connections timeout (seconds): 99999999

Related

Unable to clone git repository in Eclipse EGit

I am unable to clone a repository in Eclipse. But yes I am able to clone the same through git bash.
I am getting an error with possible reasons as:
Incorrect URL
No network connection
SSH is not configured properly.
My URL is correct and I am having proper network connection, though. As far as SSH is concerned, I am having the same set of keys in my local Windows folder, Eclipse > SSH2 and my Gerrit SSH public keys.
I am really confused, that where I am missing out on this.
The issue was due to SSH keys. I generated the new pair of keys from eclipse and mapped it to Gerrit. It is working for me now.
Thanks Rudiger for your help.

Netbeans fails to access GitHub using SSH key

My (newest) Netbeans (NetBeans IDE 7.3 (Build 201302132200)) seems to be failing completely, when I'm trying to access my own GitHub repo using SSH. It works without problems with HTTP URLs.
Since I've imported an existing local copy of GitHub repository (New > PHP Project with existing sources), created once with TortoiseGit, there were remote settings saved in local copy meta-data (probably in .git folder). So Netbeans offers option Select Configured Git Repository Location in Push to Remote Repository window. But is unsuccessful at that.
Tried following:
When I'm using SSH URL (git#github.com:user/reponame.git) and Password option, with account pass, Netbeans tries to connect GitHub (remote) and after circa 5 seconds throws error Cannot connect to the remote repository at git#github.com:user/reponame.git.
When using SSH URL with Private/Public Key option, Netbeans throws exactly the same error immediately, so I assume, that for some reason it doesn't even tries to connect GitHub.
What is even more strange (?), Netbeans is not asking for private key's passpharse. I've set it, but did not entered it to Netbeans deliberately, to test connection process. I was more than sure, that Netbeans will ask me to provide this passpharse, as it shouldn't be able to use private key without it. To my surprise, it hasn't asked for it and instead it thrown an error saying, that it can't connect GitHub. Of course, that was only a test. After entering correct passpharse, I'm getting exactly the same effects.
I've copied my repo's URL directly from GitHub website, without any modifications. It seems, that I can only use HTTP URL (https://github.com/user/reponame.git). This works and assures me that all items (URL, user, reponame, password, finally Internet connection) are OK. But, it seems, that Netbeans fails completely on SSH URL.
Above happens always, no matter if I select Select Configured Git Repository Location or Specify Git Repository Location in Push to Remote Repository window. No matter, what I'll do I can't access my repository via SSH in Netbeans and using HTTP is the only option.
I have created my private-public key pair using puttygen.exe from PuTTY's website. I saved private key in Netbeans installation directory and added public key to GitHub's SSH Settings page. I used step-by-step guide I normally use with TortoiseGit.
I don't know what else I could miss out or I'm doing wrong? Any idea?
For the record:
When generating keys with PuTTYgen, it's recommended for compatibility to export it as an OpenSSH key. This can be achieved by accesing Conversions > Export OpenSSH key menu.
After series of many tests, I found out that Netbeans:
Does not work to well with existing local copies of GitHub (or any other git) remote repositories.
Does not work at all with SSH keys generated by puttygen.
As for first, I had to remove entire folder cloned with TortoiseGit and clone the same repository using Netbeans-bundled tools (Team > Git > Clone). The same goes for Subversion (look here) -- so the general rule of thumb says, that when you're switching from another Git or SVN client to Netbeans, you should do a full, clean clone (or checkout) of remote repository as attempts to re-use existing copy will most likely fail.
As for second, follow instructions given in this GitHub article and use ssh-keygen (either from your local installation of Git for Windows, in case of Windows or from any other source) instead of puttygen -- SSH keys generated by it can't be used in Netbeans for setting up password-less login to GitHub.
As I wrote, I've been using TortoiseGit previously, which accepts and works well with puttygen keys, so it wasn't to obvious for me, that source of the problem is here.
After fixing this two problems (getting clean clone and generating correct keys), ale problems expressed in my question were gone and Netbeans works with GitHub repositories like a charm.
My solution was to use a the ssh-keygen with the PEM option:
ssh-keygen -t rsa -b 4096 -m PEM -C my#mail.xy
Netbeans 12 use JGit for the Git-tool and this supports only special kinds of ssh keys?

Can't push using EGit and Bitbucket

I've been trying to start a project using EGit with Bitbucket but I can't push the project to the repository in the server.
These are the steps I've followed (I'll try to be very specific so other people can use it as a tutorial mode; even though it's not working for me it might work for others):
1) I installed Git on Ubuntu 12.10 using this tutorial
2) Followed this tutorial for GitHub.
Start a new C++ project in Eclipse
Under Window > Preferences > General > Network Connection > SSH2 > Key Management tab, I generated a new RSA key and added it to the list of deployment keys of my repository on Bitbucket.
Right click on the eclipse project: Team > Share project ; Team > Add to index ; Team > Commit
Window > Show View > Other > Git > Git Repositories
Right click on Remotes > Create Remote > Checked "Configure push" and typed my project's name
Add Push URL: ssh://git#bitbucket.org/myuser/myrepository.git, Protocol: ssh; port: blank; user: git; password: blank
Advanced button under Ref mappings and selected the "master" version. If this step works, it means that the RSA key is configured in Bitbucket and EGit properly. Otherwise it will show a connection error.
Everything is done. However, when I press "Push" I get the following error:
ssh://git#bitbucket.org/myuser/myrepository.git: push not permitted
I've tried every configuration possible: switched to a new work space, updated Eclipse, created new repositories, re-installed Git... Any ideas?
Alright, I've finally found a way to work with it.
It's just changing the authentication mode. If the HTTPS link is used, instead of using the SSH link, everything works perfectly. It seems that SSH works just in a read-only mode.
Of course the authentication method is different: you have to type the password and the SSH keys stored in Bitbucket are no longer necessary.
For those who are having problems with EGit, I recommend following eugener's way to automatically configure EGit. Then you just have to select HTTPS as authentication mode to push the stored commits.
There is much simpler way of configuring remote Git repos in Eclipse:
Create an empty repo on BitBicket
Copy repo's URL
Clone repo to your machine using "Git Repositories" view.
Share your project into newly cloned repo.
Since a repo was cloned - remote settings were configured automatically. This means you will be able to push immediately
It might be a user name misconfiguration in .gitconfig.
Probably related, I fixed "auth fail" problems by following the instructions on:
http://wangpidong.blogspot.com.es/2012/05/how-to-use-bitbucket-with-egit-in.html
Got it from:
Configuring egit with BitBucket
In this specific case I agree with resolution from Olivier J.'s comment under original question.
But I have had similar problem and it was caused by something else. I resolved it and here is what happened:
I have been using some private repository at Bitbucket (A) with some user account and some public key (X) to access it. I have had key X loaded in my pageant Putty key chain.
Then I created a new public repository (B), also at Bitbucket with a different user account and another public key (Y). I added this key to pageant too.
When I tried to access repository B apparently public key X and not Y was used, because ..for SSH client both connections are the same - same user (git) at the same host (bitbucket.org)! And key X was used first because ..it was loaded earier? Or maybe because its name was alphabetically first? I am not sure but the result was that...
Read-only access for B using X was granted because the repository was public and any valid Bitbucket user key was enough to gain this kind of access!
..but writing (pushing) required key Y, which was not used by SSH.
So the general tip is: to resolve strange read-only git via SSH access errors check carefully which private key is actually used by SSH.
I resolved this problem by loading only one key - X or Y - in pageant at a time but I would love to do it a smarter way - please let me know in comments if you know how!
Using Bitbucket I do it this way:
create a repository in bitbucket
clone the empty repository using the https url
connect the project in eclipse to the repository using the Team -> Share option and select the location where you cloned the repo
index (stage) your project files
commit and push

invalid username/password in egit when pushing changes to googlecode

I have a project hosted in googlecode with Git.
I'm using STS (SpringSource Tool Suite) with eGit.
I cloned the repository at home and I could commit & push the changes successfully.
I did the same thing at work and when I try to push the changes after commiting them, it shows the following error:
https://myuser#code.google.com/p/myproject/: Invalid username/password.
You may need to use your generated googlecode.com password; see https://code.google.com/hosting/settings
I entered the googlecode generated password when I first cloned the repository (as I did at home, and this error never showed up). I try entering it again and nothing changes.
Does anyone know what could be causing this?
Thanks!!
Do as following:
Open Git repositories view, open "Remotes > origin > " and click "Change Credentials..."
Further reference: http://www.eclipse.org/forums/index.php/t/209017/
Enjoy!
I resolved it by going to Preferences > General > Security > Secure Storage > Contens tab and deleting default secure storage for repository.

Problems with pushing to github repository from Eclipse: Auth fail

I followed the steps from Egit user guide, but I get an error message with auth fail.
What I do:
I have copied the public key from Window > Preferences > Network Connections > SSH2 > Key Management to GitHub under account settings
Then I do
Team > Push...
I enter the git#github.com:.... uri and click next. But then I get the error:
**Cannot get remote repository refs
Reason: git#github.com:.... : Auth fail**
What could be the problem?
Thanks
Old question, but for future reference:
Make sure you did setup a push remote. It worked for me when I got both the Cannot get remote repository refs-problems ("... Passphrase for..." and "Auth fail" in the "Push..." dialog).
Provided that you already:
Setup your SSH keys with Github (Window > Preferences > General > Network Connections > SSH2)
Setup your local repository (you can follow this guide for that)
Created a Github repository (same guide)
... here's how you do it:
Go to the Git Repositories view (Window > Show View > Other > Git Repositories)
Expand your Repository and right click Remotes --> "Create Remote"
"Remote Name": origin, "Configure push": checked --> click "OK"
Click the "Change..." button
Paste your git URI and select protocol ssh --> click "Finish"
Now, click "Save and Push" and NOW you should get a password prompt --> enter the public key passphrase here (provided that you DID (and you should) setup a passphrase to your public key) --> click "OK"
Now you should get a confirmation window saying "Pushed to YourRepository - origin" --> click "OK"
Push to upstream, but this time use "Configured remote repository" as your Destination Git repository
Go get yourself a well earned cup of coffee!
Check my solution from this related question:
"Auth Failed" error with EGit and GitHub
Briefly: set GIT_SSH environment variable with a path to the system ssh executable before launching Eclipse. Far from nice but works.
For Ubuntu:
> export GIT_SSH=/usr/bin/ssh
> eclipse
I finally fixed this on my platform (mainly was a key issue but also critical not to have a leading slash before the repo path in the dialog pictured above). You can see more details in my post here, if you like:
http://www.eclipse.org/forums/index.php?t=msg&goto=648905&S=9bcfa96ab726d744d41a19c7fb02d723#msg_648905
Good luck!
Melissa
DO not forget to add .git to the repository name in the URI : field
for example if ur username is Decoderx and git repository name is foo
URI :https://github.com/Decoderx/foo.git
and not "https://github.com/Decoderx/foo" this solved this problem for me.
You can try and follow this tutorial, using the git+ssh protocol:
git+ssh://git#github.com/path_to/repo.git.github
Just git#github.com alone wouldn't work.
http://wiki.eclipse.org/EGit/User_Guide#Github_Tutorial