Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create a passwordless secondary ssh key for setting up a ssh tunnel

I need to create a script that automatically setup a ssh tunnel. I think that a dedicated ssh key without password is a good start but I couldn't find if this is possible and how to do it. This key should have limited privileges (only set the tunnel up) but I need another private key (with a password) for myself.

Thanks !

like image 413
ascobol Avatar asked Jan 06 '09 14:01

ascobol


People also ask

Can one SSH key be used for multiple times?

Yes, you can use the same public/private ssh key pair for multiple servers, as long as each server has a copy of your public key. Save this answer.


1 Answers

Ok, I've found the answer.

First, ssh-keygen -f theNewPrivateKey otherwise it will overwrite the old private key. Second, ssh -i theNewPrivateKey me@mycomputer the -i option changes the private key used for the authentication.

Now I can try my script.


Edit: how does my new key has limited privileges:

When copying the public key to $HOME/.ssh/authorized_keys2 file of the target computer, I added this:

command="sleep 99999999999" ssh-dss AAAAB3NzaC1kc3MA...
(+ the rest of the key)

Then the only command allowed is to wait forever. Since the purpose of creating this key was to create a reverse ssh tunnel this should be fine. I then create the tunnel:

ssh -T -R 7878:localhost:22 -i .ssh/mynewkey  me@myhomecomputer

Finally I can log from my home computer:

ssh myworklogin@localhost -p7878

I hope that this does not have security issues. If this is a bad thing, please let me know !

like image 134
ascobol Avatar answered Sep 30 '22 10:09

ascobol