33
votes

I've recently setup an inhouse git repository server and have it up and running with gitosis installed as the management tool. Read only access is available via the git:// protocol and write access is available via gitosis using ssh public keys.

I have a developer that has been granted access to his projects with a public key that was generated on his desktop workstation.

He is now wanting to access that repository from his laptop using the same ssh key pair. He's copied has .ssh folder in it's entirety to his laptop and has tried to clone from the repository without success.

Is this a valid thing to try?

Does a ssh key pair need to be generated per machine? This seems weird as it would effectively require a per machine username to be added to the gitosis configuration.

Any help would be appreciated.

3
Is the developer's username the same on both client machines?Nate
No they aren't but I don't think that matters in this case. The git clone command being used specifies git@<server> in the command line. So access is via the generic git user at the repository end.Lou
We've proved that the copying of the ssh keys to other machines does work as suggested. We now think this may be more of a network/vpn issue. Thanks for the answers.Lou
As an aside, a private key is basically a glorified password. It doesn't matter which machine the password comes from.Yawar

3 Answers

32
votes

Yes I think you can.

I have something similar. Two machines, one Intel (desktop) the other one Sparc. I can log into both machines and access the same CVS server (another machine) using SSH access with the same key pair which was generated on the Intel machine.

Make sure when you copy across your private key that you set both the permissions of the .ssh directory correctly (0700) and your home directory cannot be group or world writable. The id_rsa should only have user read access (0400)

16
votes

Yes, that's perfectly legitimate. ssh keys don't care where they were generated, and it's fine to have them on multiple machines at once.

Try giving the ssh client the "-v" or "-vv" option (for verbose output) and check the server's ssh log to debug the problem.

1
votes

SSH key pair's are machine independent, which means you can create a SSH key pair on one machine and can deploy the same SSH key pair on multiple machines. It is valid thing to do, thats how you must do it.

Moreover Git uses SSH for transport, so you can clone/download the Git on both the machines having the same SSH key pair.