Logo Khaganat
Translations of this page?:

This is an old revision of the document!


Connecting to servers for administration via a public key

This article describes how to connect to a server of which one is an administrator, whatever it may be(it is not specific to the MMORPG, it is the same on a basic web server) and using a public key authentication.

The manipulation here concerns a console connection from a Linux machine. </ WRAP>

The advantage of connecting to a server using a public key is that you can forget the basic passwords of the servers, there is only one to remember: yours. This is very useful if you have several servers to administer, or if they have passwords to extend and impossible to remember.

Generating the key

Open a console and generate a pair of keys by typing:

 <code>ssh-keygen -t rsa</code>
 

You should have the following text displayed:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.

A public/private key is generated, using the RSA algorithm specifically for ssh connections. Do not enter anything for the file to save the key(leave in /home/user/.ssh/id_rsa, so tap on “entry”). For the “passphrase”, find an effective password. It's often simpler if this is the same as your public password.

Copy the key to the remote server account

 <code>ssh-copy-id -i ~ / .ssh / id_rsa.pub yyy@xxxxx.org</code>

Replace yyy@xxxxx.org with the name of your server and it's user, for example root@myserver.org. Enter the server password (NOT your key passphrase, the server must know that it is you!).

And now, it's all good! You can connect to the server via ssh with your key:

 <code>ssh yyy@xxxxx.org</code>

or

 <code>ssh root@myserver.org</code>

On the server, go to the .ssh folder of /home/user and A line must end with your username and the name of your machine, these are the public keys allowed to connect.

And if we want an RSA key per site?

It is possible to automatically indicate to SSH to use this or that key according to the site to which one connects.

Suppose we have generated two RSA keys as described above. Simply specify a different name for the question “/home/user/.ssh/id_rsa”: “/home/user/.ssh/cle1” and “ '/home/user/.ssh/cle2' '. It was therefore decided to use the keys as follows:

  • cle1 pour aller sur le serveur 1
  • cle2 pour aller sur le serveur 2

Il faut alors créer un fichier config dans son répertoire .ssh dans son /home. Il contiendra pour chaque serveur un identifiant, son nom (ou adresse IP directe), le fichier rsa à utiliser et l'identifiant qui y est lié :

config
host serveur1
	HostName serveur1.fr
	IdentityFile ~/.ssh/cle1
	User totor
 
host serveur2
	HostName 202.127.12.13
	IdentityFile ~/.ssh/cle2
	User roxxor

Ensuite quand on se connectera avec SSH, le système saura que pour aller sur serveur1.fr, il faut qu'il utilise la clef ~/.ssh/cle1 et l'identifiant totor. Il ne restera qu'à entrer la passphrase qui y est liée. Il n'y a plus besoin de donner la clef nécessaire ou l'identifiant, juste éventuellement le port si il n'est pas standard.

Par exemple : Accès au serveur 1 qui a un port standard :

~$ ssh serveur1.fr

Accès au serveur 2 qui a son port SSH ouvert au numéro 66666 :

~$ ssh -p 66666 202.127.12.13

Se connecter sans mot de passe (méthode non sécurisée)

Se connecter sans mot de passe ouvre potentiellement une faille de sécurité. À réserver à des cas très particuliers !

Un de ces cas est la possibilité pour un serveur A de se connecter à un serveur B, pour effectuer une sauvegarde des données par exemple. Le serveur A doit lui-même être bien protégé.

Il suffit de créer une clé sur le serveur A, comme indiqué plus haut (ssh-keygen -t rsa) mais de ne pas rentrer de mot de passe. Cette clé pourra donc être utilisée pour se connecter sans mot de passe.

Ensuite on ajoute cette clé sur le serveur B (ssh-copy-id -i ~/.ssh/id_rsa.pub yyy@xxxxx.org).

Comme les fichiers id_rsa et id_rsa.pub peuvent facilement être copiés d'un ordinateur à l'autre, on peut sécuriser un peu en faisant en sorte que le serveur B n'accepte la clé du serveur A que si cette clé est utilisé depuis l'adresse IP du serveur A.

Il faut alors ajouter “from=IP1,IP2” dans le fichier authorized_keys, au début de la clé en question.

Exemple :

from="192.02.300.01" ssh-rsa XXXYYYZZZ(clé) user@server

Se connecter sans retaper trop souvent son mot de passe (méthode sécurisée)

Il suffit d'utiliser un “agent ssh” qui va se souvenir de votre clé. En théorie, votre mot de passe ne devrait être demandé qu'une fois par session, la première fois que vous déverrouillez la clé.

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

Pour aller plus loin

CC Attribution-Share Alike 4.0 International Driven by DokuWiki
en/connexion_serveur_admin.1483382927.txt.gz · Last modified: (external edit)

Licences Mentions légales Accueil du site Contact Inclusion