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

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. Contributeur
    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
    1. 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
      1. 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
        1. 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
          1. 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
            1. Merci, je vais voir ça.
              Me disais bien que ce n'était pas le bon fichier.

              Bahan
              0
              1. Contributeur
                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
                1. 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
                  1. Contributeur
                    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
                    1. 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
                      1. Ok,
                        essaie en remplacant le nom Minoo par son adresse ip
                        0
                        1. 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
                          1. 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
                            1. 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
                              1. 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
                                1. 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