[Linux] Permettre le rsh à une ip donnée

B@|-|@N Messages postés 386 Statut Membre -  
[Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour.

J'ai à ma disposition deux serveurs tournant tous les deux sous Linux Red Hat 9.0 et je voulais savoir comment faire pour que l'un ait accès en rsh à l'autre. Quelle est la procédure pour permettre cela ? Y a-t-il un fichier spécial à remplir ?

merci d'avance pour vos infos.

Bahan
--
Close the world.||.txen eht nepO

16 réponses

  1. gbenay Messages postés 61 Statut Membre 11
     
    Bonjour,
    Si tu as besoin necessairement de rsh (bien que je te conseille ssh, plus securise). il faut que le demon rshd( en general il est pris en charge par
    inetd ou xinetd) .
    Si c'est le cas il faut declarer a ce demon de prendre en charge le service
    "rshd"
    Dans le cas de xinetd
    il existe un fichier
    /etc/xinet.d/rshd
    

    et il faut que la ligne disable soit a no
    service rsh
    {
            disable = no
         
            socket_type     = stream
            ....
    }
    

    pour inet.d
    il faut -si je me souviens - modifier le fichier /etc/inetd.conf
    pour lui donner les droits de "prendre en charge " le service rshd
    Bon courage
    0
  2. B@|-|@N Messages postés 386 Statut Membre 62
     
    Ok j'ai regardé un peu le ssh et j'ai créé une paire de clef avec l'aide de ssh-keygen. Le truc c'est que je ne sais pas si je suis en ssh 1 ou 2 ? Y a un moyen de le savoir facilement ça ? Quand j'ai créé mes deux clefs, j'ai utilisé comme type rsa1.

    Actuellement cela marchotte. En fait, ce qui m'ennuie c'est qu'il me demande fatalement un password... Y a pas moyen d'aller directement sur l'ordi distant sans avoir à taper de pass ? Je pensais qu'une fois l'étape des clefs passée c'était bon...

    De plus, quand je me suis connecté la première fois à l'ordi distant, il m'a dit la chose suivante :

    [bahan@Minoo bahan]$ ssh -l bahan ip_distante
    The authenticity of host 'ip_distante (ip_distante)' can't be established.
    RSA key fingerprint is 41:92:5b:a2:24:ca:4a:c5:82:b2:8a:03:ef:58:73:09.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'ip_distante' (RSA) to the list of known hosts.
    bahan@ip_distante's password:


    Est-ce normal ?

    Bahan, à galère l'administration ^_^
    0
  3. gbenay Messages postés 61 Statut Membre 11
     
    Bonjour,
    1/ ssh1 ou ssh2
    Si tu as pris openssh il a les 2 protocoles, C'est le fichier
    /etc/ssh/sshd.config
    

    qui contient les elements necessaires a la configuration du serveur.
    Tu dois avoir la ligne
    Protocol 2,1
    

    qui indique que tu fonctionnes avec les 2 protocoles
    2/voit le man sshd pour comprendre la difference entre les 2 protocoles, (Chiffrement longueur des clefs, ...)
    3/ pour ne pas retaper le mot de passe
    Il faut creer sur le serveur un fichier
    $HOME/.ssh/authorized_keys
    qui contient la clef public du client
    les lignes sont :
    protocole_chiffrement clef utilisateur@machine_client
    

    ou protocole_chiffrement est ssh-rsa (ou ssh-dsa)
    fait un man ssh pour + d'infos

    3/ A la premiere connexion le serveur repertorie dans un fichier
    $HOME/.ssh/known_hosts
    les clients qui se sont connectes. avec leur nom(ou adresse IP) le protocole, et la clef envoyee.
    Si le meme client se reconnecte en ayant modifie sa clef, le serveur
    peut lui refuser l'acces. (on peut penser que c'est une intrusion par un mauvais client).

    Attention le fichier "authorized_keys" ne doit etre lisible" que par le propriétaire
    C'est a dire droit = -rw-------

    Pense a regarder les man
    man ssh et
    man sshd
    A+
    0
  4. B@|-|@N Messages postés 386 Statut Membre 62
     
    Merci.

    1. Protocol 1,2 est enc ommentaire dans sshd.config.

    J'avais regardé les man de ssh et de ssh-keygen, mais je n'avais pas du tout pensé au fichier de conf.

    Le truc c'est que j'ai effectivement le fichier authorized_keys en rw sur mon serveur, dont le contenu est le copier-coller du fichier identity.pub de mon client.

    Et pourtant, rien à faire, il me demande toujours le mot de passe quand je me connecte :
    ssh -l bahan ipduserveur
    il me demande le pass...

    Bahan
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. B@|-|@N Messages postés 386 Statut Membre 62
     
    Est-ce que le problème peut venir du fait suivant : en gros je ne epsne pas que le nom de mon client, à savoir Minoo soit connu par mon serveur à savoir Toutoo.

    Or, comme dans le fichier authorized_keys, j'ai bien bahan@Minoo à la fin de la ligne, peut-être qu'il ne comprend pas ?

    Bahan
    0
  7. gbenay Messages postés 61 Statut Membre 11
     
    Ok,
    essaie en remplacant le nom Minoo par son adresse ip
    0
  8. B@|-|@N Messages postés 386 Statut Membre 62
     
    Alors j'ai essayé un autre truc :
    ssh -i /home/bahan/.ssh/identity.pub bahan@ip_toutoo

    et là il me demande bien ma passphrase.
    Le problème c'est que j'ai beau la taper, il ne la reconnait pas T_T et, après trois essais infructueux, il me demande mon password reT_T.

    Bahan
    0
  9. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Bahan,

    Pour ton problème d'échec de mot de passe, voilà ce que dit mon "man ssh" sur l'option -i :

    -i identity_file
    Selects a file from which the identity (private key) for RSA or
    DSA authentication is read. The default is $HOME/.ssh/identity
    for protocol version 1, and $HOME/.ssh/id_rsa and
    $HOME/.ssh/id_dsa for protocol version 2.


    C'est donc la clé privée que tu dois fournir à l'option -i

    Sur le problème de la demande du mot de passe... eh bien... si la clé privée est protégée par un mot de passe, le client ssh va en avoir nécessairement besoin.

    Pour faire ce que tu veux faire, tu peux utiliser "ssh-agent" (en combinaison avec "ssh-add") qui va gérer sur la machine cliente les clés privées et les mots de passe associés.

    Vois cet article, qui parle du sujet :

    http://mah.everybody.org/docs/ssh

    Si c'est trop complexe à mettre en place pour toi, alternativement, tu peux aussi créer une paire de clés non protégées par un mot de passe (tu tapes "entrée" lorsqu'on te demande un mot de passe lors de la création de la clé avec ssh-keygen).

    Dans tous les cas (et surtout dans ce dernier cas), il faut sécuriser la distribution et révoquer la paire de clés en cas de compromission. Si tu dois distribuer les clés sur plusieurs postes, crée des paires de clés différentes, afin de pouvoir gérer leur révocation indépendamment. Et n'utilise ces connexions que sur des comptes non-privilégiés.

    S'il y a un moyen de faire autrement pour se passer de la saisie du mot de passe, je suis preneur, car j'en serai très certainement utilisateur :)

    Dal
    0
  10. B@|-|@N Messages postés 386 Statut Membre 62
     
    Bon, je me broie la tête là.

    Essayons de récapituler :
    Voici les lignes de comamnde que je fais :

    [bahan@Minoo .ssh]$ ssh -l bahan ip_toutoo
    The authenticity of host 'ip_toutoo (ip_toutoo)' can't be established.
    RSA key fingerprint is 41:92:5b:a2:24:ca:4a:c5:82:b2:8a:03:ef:58:73:09.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'ip_toutoo' (RSA) to the list of known hosts.
    bahan@ip_toutoo's password: je tape mon pass
    [bahan@Toutoo bahan]$exit
    [bahan@Minoo .ssh]$ ssh-keygen -t rsa1
    Generating public/private rsa1 key pair.
    Enter file in which to save the key (/home/bahan/.ssh/identity):
    Enter passphrase (empty for no passphrase):je tape toto
    Enter same passphrase again: je retape toto
    Your identification has been saved in /home/bahan/.ssh/identity.
    Your public key has been saved in /home/bahan/.ssh/identity.pub.
    The key fingerprint is:
    1f:a9:b6:ee:33:76:8b:13:48:2c:f6:10:53:3b:01:85 bahan@Minoo
    
    Ensuite j'ouvre un autre terminal, je me connecte a Toutoo et je copie le contenu de /home/bahan/.ssh/identity.pub (sur Minoo) dans le fichier que je crée /home/bahan/.ssh/authorized_keys (sur Toutoo).
    
    Ensuite :
    [bahan@Minoo .ssh]$ ssh -i /home/bahan/.ssh/identity.pub bahan@ip_toutoo
    Enter passphrase for key '/home/bahan/.ssh/identity.pub':toto
    Enter passphrase for key '/home/bahan/.ssh/identity.pub':toto
    Enter passphrase for key '/home/bahan/.ssh/identity.pub':toto
    omclinux@10.162.36.20's password: et zut
    Je ne comprends pas... Même en relançant le sreveur sshd que ce soit sur le client ou sur le serveur, cela ne fonctionne pas...

    Bahan, vais me pendre
    0
  11. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Hmm.. Bahan, nos messages se sont croisés, je crois. As-tu lu mon message ci-dessus ?

    Dal

    P.S. : ne te pends pas tout de suite ;P
    0
  12. B@|-|@N Messages postés 386 Statut Membre 62
     
    Merci, je vais voir ça.
    Me disais bien que ce n'était pas le bon fichier.

    Bahan
    0
  13. B@|-|@N Messages postés 386 Statut Membre 62
     
    Autre petite question :

    Comment puis-je, dans un script bash, lancer une commande en ssh et a la demande du mot de passe, lui envoyer automatiquement ?

    Bahan
    0
  14. B@|-|@N Messages postés 386 Statut Membre 62
     
    Hum hum, j'ai été voir dans le man de ssh_config, et il semblerait qu'en mettant le parametre BatchMode à yes, on n'a pas besoin de mot de passe.

    Bahan, vais creuser un peu plus
    0
  15. B@|-|@N Messages postés 386 Statut Membre 62
     
    Bon alors j'ai un nouveau problème :

    Voilà ce que je tape sur mon client pour me connecter à mon serveur :
    [bahan@Minoo bahan]$ ssh -l bahan -o BatchMode='yes' ip_toutoo
    Permission denied (publickey,password,keyboard-interactive).

    Pensez-vous que le permission denied vient du fait que je n'ai pas modifié mon fichier /etc/ssh/ssh_config sur mon serveur ?

    Dois-je ajouter une partie de ce genre :
    host ip_client
     BatchMode yes
     blablabla...

    Bahan
    0
  16. B@|-|@N Messages postés 386 Statut Membre 62
     
    Après d'autres déboires, j'ai enfin découvert l'option -v et l'option -V.
    [bahan@Minoo bahan]$ ssh -V -o BatchMode=yes ip_serveur
    OpenSSH_3.5p1, SSH protocols 1.5/2.0, OpenSSL 0x0090701f

    Est-ce que cela veut dire que je ne peux pas utiliser du ssh 1, et que je suis obligé d'utiliser la version 2 de ssh ?
    [bahan@Minoo bahan]$ ssh -v -o BatchMode=yes ip_serveur
    OpenSSH_3.5p1, SSH protocols 1.5/2.0, OpenSSL 0x0090701f
    debug1: Reading configuration data /etc/ssh/ssh_config
    debug1: Applying options for *
    debug1: Rhosts Authentication disabled, originating port will not be trusted.
    debug1: ssh_connect: needpriv 0
    debug1: Connecting to ip_serveur [ip_serveur] port 22.
    debug1: Connection established.
    debug1: identity file /home/omclinux/.ssh/identity type 0
    debug1: identity file /home/omclinux/.ssh/id_rsa type -1
    debug1: identity file /home/omclinux/.ssh/id_dsa type -1
    debug1: Remote protocol version 1.99, remote software version OpenSSH_3.5p1
    debug1: match: OpenSSH_3.5p1 pat OpenSSH*
    debug1: Enabling compatibility mode for protocol 2.0
    debug1: Local version string SSH-2.0-OpenSSH_3.5p1
    debug1: SSH2_MSG_KEXINIT sent
    debug1: SSH2_MSG_KEXINIT received
    debug1: kex: server->client aes128-cbc hmac-md5 none
    debug1: kex: client->server aes128-cbc hmac-md5 none
    debug1: SSH2_MSG_KEX_DH_GEX_REQUEST sent
    debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
    debug1: dh_gen_key: priv key bits set: 135/256
    debug1: bits set: 1634/3191
    debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
    debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
    debug1: Host 'ip_serveur' is known and matches the RSA host key.
    debug1: Found key in /home/bahan/.ssh/known_hosts:1
    debug1: bits set: 1573/3191
    debug1: ssh_rsa_verify: signature correct
    debug1: kex_derive_keys
    debug1: newkeys: mode 1
    debug1: SSH2_MSG_NEWKEYS sent
    debug1: waiting for SSH2_MSG_NEWKEYS
    debug1: newkeys: mode 0
    debug1: SSH2_MSG_NEWKEYS received
    debug1: done: ssh_kex2.
    debug1: send SSH2_MSG_SERVICE_REQUEST
    debug1: service_accept: ssh-userauth
    debug1: got SSH2_MSG_SERVICE_ACCEPT
    debug1: authentications that can continue: publickey,password,keyboard-interactive
    debug1: next auth method to try is publickey
    debug1: try privkey: /home/bahan/.ssh/id_rsa
    debug1: try privkey: /home/bahan/.ssh/id_dsa
    debug1: no more auth methods to try
    Permission denied (publickey,password,keyboard-interactive).
    debug1: Calling cleanup 0x80674d0(0x0)

    je n'arrive pas à voir ce qui ne va pas...

    Bahan
    0
  17. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Bahan,

    debug1: try privkey: /home/bahan/.ssh/id_rsa
    debug1: try privkey: /home/bahan/.ssh/id_dsa
    debug1: no more auth methods to try


    Il me semble que ton message d'erreur indique que le client ssh ne trouve aucun procédé d'authentification permettant l'accès à la machine, l'authentification par certificat ayant échoué et l'authentification par échange intéractif étant supprimée par ton option "BatchMode=yes".

    Mettre cette option dans ssh_config ne devrait pas changer grand chose, à mon sens... mais tu peux essayer.

    En passant, attention à ne pas confondre le mot de passe affecté au compte Unix distant auquel tu te connectes et le mot de passe de déblocage de la clé privée (qui peuvent et *devraient* être différents). Lorsque tu utilises ssh avec l'option "-i" le mot de passe qui t'es demandé est celui attaché au certificat.

    As-tu consulté : http://mah.everybody.org/docs/ssh ?

    Dal
    0