First of all, I am aware that this question has been posted several times in stack overflow here, here, here, as well as in some other places.
However, I decided to open a new thread (and taking the risk of being downvoted) because I don't think there is an actual issue with my machine, but with PUTTY.
Environment description
In a nutshell, I have a windows machine running a virtual machine (VMWare).
- Host machine: Windows 7 (64 bit)
- Guest machine: CentOS 6 with graphic windows environment.
- Network connection perfectly setup, so no problems with firewall. Both machines are pingeable from each other, and I can surf the internet from both
- Selinux disabled on guest machine
- Putty is properly configured (or so I think). The reasons to back up the statement is that I can SSH the guest machine from the host machine with the encrypted SSH keys that I created for that matter. However, I think there is still some configuration missing. Keep reading.
- I have configured GITOLITE on the guest machine, and it is up and running.
- Although not relevant for this issue, I have a Samba share configured on the guest machine, were I have all my repos. The share is accessible from the host machine, and I can edit the files with no problem whatsoever.
- VM Player 7
- Guest machine recently restarted and no additional commands have been issued.
- PUTTY installed in the host machine
Case scenario #1 (it works)
This case scenario describes the behaviour I expect to achieve. Basically, this procedure is being done within the VM itself. That means, by operating the machine through the VM Player.
- Open a terminal as root
service sshd status
yieldsopenssh-daemon (pid 1557) is running...
ssh-add -l
yields2048 1b:31 [...] b8:de Git Admin (RSA)
,2048 d2:58 [...] f6:2b pando (RSA)
and(2048) be:9b [...] dc:e9 web (RSA)
. These are the three users I have configured in my virtual machine. The SSH keys have been automatically loaded and added to the list of identities of the SSH service.- Log out as root from the CLI. I am now an standard user (the
pando
user). - Edit one file in one of the repos
git commit -a -m "My message"
is successful because theGit Admin
key is in the identity list of the SSH agentgit push origin master
is also successful, for the same reasons
Case scenario #2 (it does not work)
This case scenario describes the same procedure, but from the Putty terminal. I added to the Pageant the same SSH keys as described in Case Scenario #1, point 3. It looks like everything is Ok with Putty, because I can successfully SSH my virtual machine
- Open the Putty Terminal. I am logged in as user
pando
(which is one of the identities mentioned in Case Scenario 1). su
service sshd status
yieldsopenssh-daemon (pid 1557) is running...
(notice that it is the same result as we got in point #2 of the first case scenario)ssh-add -l
yieldsCould not open a connection to your authentication agent
- Because the previous step failed, I have all the issues described in the hyperlinked threads at the beginning of this post.
Now, I am familiar with that procedure of eval $(ssh-agent)
and then to manually add the SSH keys on my SSH folder. In fact, I do that every time I SSH the virtual machine. But I actually prefer not to do it.
I am also familiar with adding some script to the .bashsrc
file, but the last time I did it, I got a colateral effect with Puppet.
So the basic question is: What's the difference betwen both case scenarios, even though I am using the same SSH keys? Is it that Pageant is not forwarding the keys? If so, why am I able to SSH my machine? Why should I change the .bashrc
file of my pando
user in the second case scenario, when I can achieve exactly the same thing without it in the first case scenario? I guess I am missing a fundamental piece of information here
Hope that makes sense.
Regards.