User Tools

Site Tools


sshkey

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
sshkey [2011/04/05 14:08] cangianisshkey [2019/11/06 10:00] admin
Line 16: Line 16:
   * When the system ask a name for the file **id_dsa** just press enter   * When the system ask a name for the file **id_dsa** just press enter
  
-  * The system will ask your for a password. This is the password that is used to encrypt your private key file (id_dsa) so that, even if the file gets stolen, it cannot be used. Try to generate a [[strongpass|strong password]].+  * The system will ask your for a password. This is the password that is used to encrypt your private key file (id_dsa) so that, even if the file gets stolen, it cannot be used. Try to generate a strong password.
  
   * Now you have to append the content of your public key file ''~/.ssh/id_dsa.pub'' into the ''~/.ssh/authorized_keys'' on the machines where you want to be able to ssh into (e.g. if you are generating the key pair on your laptop, you might want to add the public key on the cluster lth.epfl.ch):   * Now you have to append the content of your public key file ''~/.ssh/id_dsa.pub'' into the ''~/.ssh/authorized_keys'' on the machines where you want to be able to ssh into (e.g. if you are generating the key pair on your laptop, you might want to add the public key on the cluster lth.epfl.ch):
Line 28: Line 28:
 From now, every time you connet to a server, the server will recognize your workstation automatically (it read the ~/.ssh/authorized_keys file everytime you connect) and you can login without bothering with the password.... well almost! Curious? Continue reading. From now, every time you connet to a server, the server will recognize your workstation automatically (it read the ~/.ssh/authorized_keys file everytime you connect) and you can login without bothering with the password.... well almost! Curious? Continue reading.
  
-In fact, since your private key is encrypted, you need to type the password that can decrypt it each time you want to use it. Seems like we didn't gain anything till now.  +In fact, since your private key is encrypted, you need to type the password to decrypt it each time you want to use it. Seems like we have just replaced the "enter remote machine password" with "enter local key encryption password" 
- +
-Ssh-agent is a program that keeps in memory your decrypted private ssh key and serves it to ssh when it is needed. In this way you only have to type the decryption password only once. Keeping the decrypted key (or the password) in memory is considered safer than letting the key file un-encryptedSo, let's+
  
 ==== Setup ssh-agent ==== ==== Setup ssh-agent ====
  
 +Ssh-agent is a program that keeps in memory your decrypted private ssh key and serves it to ssh when it is needed. In this way you only have to type the decryption password only once. Keeping the decrypted key (or the password) in memory is considered safer than letting the key file un-encrypted. 
 +
 +=== On desktop sessions ===
 +All modern desktop environment (os X, Gnome, KDE), do take care automatically the ssh key decryption business and you don't have to do anything. Yahoo!
 +
 +=== On console ===
 +If you are not on a full desktop environment (e.g. if you ssh to a machine from where you want to connect to [several] another machines), then you have to setup the ssh-agent business by hand. 
 +
 +The two (actually three) steps are
 +  * launch ''ssh-agent'' and setup the environment variables accordingly:
 +
 +  $ eval `ssh-agent -s`
 +
 +  * ask ''ssh-agent'' to manage your ''id_dsa'' key (eventually with a lifetime ''-t time_in_seconds'')
 +
 +  $ ssh-add [-t time_in_seconds] ~/.ssh/id_dsa
 +
 +  * before logging out you have to remember to kill the ssh-agent:
 +
 +  $ ssh-agent -k
 +
 +Since this is quite cumbersome, I suggest to add the following to your ''~/.bash_profile'':
 +
 +<code>
 +# only for interactive shell
 +if [ "$PS1" ]; then
 +  # run ssh agent if not already running
 +  SSHAGENT=/usr/bin/ssh-agent
 +  if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then
 +    eval `$SSHAGENT -s`
 +    alias ssh='ssh-add; unalias ssh; ssh'
 +    trap "$SSHAGENT -k" 0
 +  fi
 +fi
 +</code>
 +
 +This will start ''ssh-agent'' and add ''ssh-add'' only the first time you try to use ''ssh''. This way you will have to type the password only if you really need to ''ssh''
  
sshkey.txt · Last modified: 2022/08/05 11:20 by admin