Whenever I use the following
url = ssh://user#dev.example.com:imageInfo.git
in .git/config for a remote repo I get the following error
ssh: connect to host port 22: Connection refused
fatal: The remote end hung up unexpectedly
but if use the following
ssh user#dev.example.com
outside of git I connect without a problem.
Git also connects to same server with a gitosis user using
url = gitosis#dev.example.com:imageInfo.git
in .git/config and it has not problems.
so to sum things up in short my .git/config file looks like this
[remote "production"]
url = ssh://user#dev.example.com:imageInfo.git
url = gitosis#dev.example.com:imageInfo.git
any ideas?
You have the format of the SSH URL wrong - you can either use the scp-style syntax, like:
user#dev.example.com:imageInfo.git
... or the true URL form, where you need a / after the host rather than a :, and an absolute path, which I can only guess at, e.g.:
ssh://user#dev.example.com/srv/git/imageInfo.git
The documentation for git's URLs is here, but kernel.org is down at the moment, so you may want to look at the cached version here.
I got this message due to not having sshd daemon installed and running. So I did 'sudo apt-get install ssh' and the issue was solved.
Related
I'm trying to access a source code from a Windows 7 host using Git 2.23.0.windows.1. I have to use a Windows host and git:// protocol. Linux and other protocols are not allowed.
The error is:
$ git clone git://johndoe#source.example.com:22480/main
Cloning into 'main'...
fatal: unable to look up johndoe#source.example.com (port 22480)
(A non-recoverable error occurred during a database lookup. )
I'm finding hits for similar problems, like Cloning git repository Failure (fixed by switching to https://) and How to fix "fatal :unable to look up https (port 9418) (push problem). But I have not found my specific problem.
I believe git://johndoe#source.example.com:22480/main is well formed according to the git pull (1) man page. See the section Git Urls.
If I am parsing the error message correctly, it looks like Git is not separating the user from the url, port and protocol. That is, "unable to look up johndoe#source.example.com (port 22480)" should be "unable to look up source.example.com (port 22480)" (without the user part).
What is the problem and how do I fix it?
~/.gitconfig is pretty boring at the moment:
[user]
email = john.doe#example.com
name = John Doe
[winUpdater]
recentlySeenVersion = 2.23.0.windows.1
The only interesting thing is, the email address uses a dot john.doe#example.com, while the user in the url does not johndoe#source.example.com:22480. This is how the system is setup.
https://git-scm.com/docs/git-pull
The native transport (i.e. git:// URL) does no authentication…
I.e. the URL should be git://source.example.com:22480/main. Or switch to a different protocol that does authentication. Try ssh://johndoe#source.example.com:22480/main or https://johndoe#source.example.com:22480/main.
I'm running on a Windows 7 machine with msysgit, git Bash, tortoisegit and posh-git all installed.
Our company has a git server that previously ran on https. Then, for a time it had both https and ssh. Now it has only ssh. Everything ran without issues on https.
I generated and installed all my keys without a problem. I can push/pull/whatever via tortoisegit with no problems. However, I can no longer use the command line in either git BASH or powershell + posh-git. I think part of the reason is because we do not use port 22, but a custom port for increased security.
Note that hostname and port number have been changed in the commands below to protect the innocent.
I get the errors below when trying to push/pull, but I'm showing commands just to test the ssh server to show that ssh is the issue (I believe). If I don't specify the port, it finds the server and attempts to connect - but since it defaults to port 22 I get an error as shown below:
C:\gitpath\design [master]> ssh ssh://git#dev.zzz.us
ssh: connect to host dev.zzz.us port 22: Bad file number
If I do specify the port, however, it then cannot find the hostname:
C:\gitpath\design [master]> ssh ssh://git#dev.zzz.us:9092/
ssh.exe": Could not resolve hostname dev.zzz.us:9092/: no address associated with name
I've looked at similar posts and they all pointed to needing the protocol included (ssh://) to prevent this error. As you can see, I'm getting this error even with the protocol in place. I've also tried with and without the ending '/' - same result. Is there something else with the syntax I'm missing?
Identifiers such as ssh://git#dev.zzz.us:9092/ can be used by git to specify
a non-standard port for SSH when configuring remote repositories. However, the
remote identifier must include the path (I prefer to use the absolute path) to
the remote repository, e.g.,
git remote add origin ssh://git#dev.zzz.us:9092/path/to/repo.git
However, to test such a connection using the ssh command, you use the -p
option to specify the TCP port number and then user#hostname:
ssh -p 9092 git#dev.zzz.us
Note: I usually use Git from a Unix system (not from Windows) and the ssh
command is provided by the Openssh package.
Edit: I just checked on a Windows box and see that MSysGit also uses Openssh
so the above commands work; I haven't checked with Powershell but there shouldn't
be any issues running the above commands through the Bash shell.
I've searched and tried kinds of solution before I ask this question, but obviously it doesn't work. That may be a common problem of Mac Air:
And the problem is that when I tried to establish new repo for git and type:
git remote add origin https://githup.com/username/reponame.git
git push -u origin master
I got this error:
fatal : unable to access 'https://githup.com/....': failed to connect to githup.com443; Operation timed out.
If I use git like this:
git remote add origin git#githup.com:username/repo.git
git push -u origin master
I got these:
ssh: connect to host githup.com port 22: Operation timed out
fatal: Could not read from remote repository.
I just begin to doubt that ssh service of Mac Air may be not available.
Any useful solution ?
Thanks very much in advance!!!
Have you tried https://github.com instead of https://githup.com.
I guess that is the error.
I'm facing some problems while git clone a repo from my ubuntu server running gitolite.
First, I got a public key from the developer who wants to clone the repository from the server. It was a rsa key created with putty. So I did the following to parse it from the putty-style to openssh format with:
ssh-keygen -i -f /tmp/ssh2/YourName.pub > /tmp/openssh/YourName.pub (taken from http://gitolite.googlecode.com/git/doc/ssh-troubleshooting.mkd?r=d3a663d03f1027f909732d55d0519bdd84edb62c)
and uploaded the public key along with a new entry for the repo and the new user in the config file to gitolite-admin repo.
So far, so good.
The developer is using **** along with putty to connect to the server, which is running git on a non-standard port and he keeps on getting the same error over and over again:
Cloning into 'D:\path\to\dirctory'...
error: Recv failure: Connection was reset while accessing http://sub.domain.com/info/refs
fatal: HTTP request failed
git did not exit cleanly (exit code 128)
Could anyone give me some advice about this issue?
EDIT:
In the meantime, we managed to git clone the repository by addressing it with the ssh:// protocol instead of git://, so it doesn't seem like it is a problem of the rsa_public.key or something like that.
The iptables on the server are accepting connections through the port for git, but it keeps on giving the above mentioned error.
The OP herom initially commented that the developer used git://git#remote.server.com:port/repo.git as an address.
I asked if there was any firewall issue, preventing the use of the git port (9418), but the OP mentioned:
no, there shouldn't be a firewall issue as iptables is accepting traffic for the git port - the port is forwarded and appears to be another port when connecting from outside...
Now, the developer cloned the repo through ssh:// (and even connecting to the ssh-port!)
I note that the git port can sometime be blocked, as illustrated in this thread.
If not on the client side, maybe on the server side.
I've just successfully built SparkleShare for windows according to guide:
https://github.com/wimh/SparkleShare/wiki
and exported my ssh public key to a server.
The problem is that I can't connect from a client behind a http_proxy to a public server with ssh running on a custom port. I had also problem with cloning any git server. I need to switch git:// protocol to http:// one. Any suggestion? Does anyone have similar experience?
This is a log file:
15:25:13 [SSH] ssh-agent started, PID=4380 Identity added:
C:\Users\MYUSER\AppData\Roaming\sparkleshare\sparkleshare.MYEMAIL.key
(C:\Users\sg0922706\AppData\Roaming\sparkleshare\sparkleshare.MYEMAIL.key)
15:25:34 [Fetcher][C:\Users\MYUSER\Documents\SparkleShare.tmp\share]
Fetchin g folder: ssh://MYGITUSER#MYHOST/MYPATH 15:25:34 [Fetcher]
Disabled host key checking MYHOST 15:25:34 [Cmd] git clone --progress
"ssh://MYGITUSER#MYHOST/MYPATH" "C:\Us
ers\MYUSER\Documents\SparkleShare.tmp\share" 15:25:37 [Git] Exit code
128 15:25:37 [Fetcher] Failed 15:25:37 [Fetcher] Enabled host key
checking for MYHOST
To get SparkleShare to use your proxy you will need to modify the config of the msysgit that is installed as part of SparkleShare. Navigate to C:\Program Files (x86)\SparkleShare\msysgit\etc and edit the gitconfig file in notepad and add the following line under the [http] tag
proxy = http://user:pass#proxyurl:port
modifying the url as required to match your settings. You can then use the "On my own server" option to add the http url of your repository.
I have a work around on this particular problem. I guess that you already successfully connected to your server via a simple SSH client (i.e. PuTTY)? With PuTTY you can easily configure an ssh connection via any kind of proxy (such as HTTP, SOCKS, Telnet, ..)
What you can do now is to specify a local "tunnel" (an SSH port forwarding rule) like this: L22 127.0.01:22 (see attachment). If you are using a ssh command line add the following option: -L 22:127.0.01:22.
So now as soon as your terminal is open and running you'll be able to reach your git server via the server url: ssh://git#127.0.0.1.
If your local port 22 is busy you can define the tunnet on a other port. i.e. if the 44 is not occupied: L44 127.0.0.1:22. The url to use in SparkleShare become ssh://git#127.0.0.1:44.
But it's a work around. I'm looking for a better solution.