IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Raspberry Pi Discussion :

SSH avec Raspberry pi 0 équipé de NOOBS 2.7


Sujet :

Raspberry Pi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Pérou

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2013
    Messages : 203
    Par défaut SSH avec Raspberry pi 0 équipé de NOOBS 2.7
    Bonjour tous,

    Je risque de me faire estampillé "sot", mais bon, je tourne en rond, est-ce dû au fait les forums traitent souvent de versions antérieures de NOOBS ? Tant pis : j’accepte le sceau de sot.

    Je suis aux prises avec un Raspberry pi 0 (RPi0), équipé de NOOBS 2.7. sympa, cette distribution, moi qui n’ai jamais réussi à installer Debian jusqu’à maintenant ! Autant Rasberry est sympa (c'est mon premier contact), autant Arduino est ragoutant. J’ai appréciée NOOBS parce qu’elle me semble plus "prête" de l’utilisateur léger que je suis ! Il faut dire que j’utilise Suse depuis au moins 1998 et exclusivement (pas de M$) depuis 2004.

    Voici mes réglages, après une installation "toute neuve", et ajustée au premier boot pour SSH et pas de UART, nouveau mot de passe "pi", et nouveau mot de passe "root" :

    Fichier /boot/cmdline.txt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether splash plymouth.ignore-serial-consoles
    Fichier /boot/config.txt, sans les commentaires (lignes 6 ajoutée par moi-même):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    hdmi_force_hotplug=1
    hdmi_group=2
    hdmi_mode=82
    dtparam=audio=on
    hdmi_force_hotplug=1
    dtoverlay=dwc2
    enable_uart=0
    Fichier /root/etc/network/interfaces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    source-directory /etc/network/interfaces.d
    allow-hotplug usb0
    iface usb0 inet static
        address 192.168.7.2
        netmask 255.255.255.0
        network 192.168.7.0
        broadcast 192.168.7.255
        gateway 192.168.7.1
        dns-nameservers 190.113.220.18 190.113.220.51 190.113.220.54
    Fichier /root/etc/ssh/ssh_config (tiré de mon PC portable : seule la ligne 5 est en plus)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Host *
        SendEnv LANG LC_*
        HashKnownHosts yes
        GSSAPIAuthentication yes
        GSSAPIDelegateCredentials no
    Fichier /root/etc/ssh/sshd_config, sans les commentaires (tiré de mon PC portable : là, beaucoup de différences):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Port 22
    Protocol 2
    HostKey /etc/ssh/ssh_host_rsa_key
    HostKey /etc/ssh/ssh_host_dsa_key
    HostKey /etc/ssh/ssh_host_ecdsa_key
    HostKey /etc/ssh/ssh_host_ed25519_key
    UsePrivilegeSeparation yes
    KeyRegenerationInterval 3600
    ServerKeyBits 1024
    SyslogFacility AUTH
    LogLevel INFO
    LoginGraceTime 120
    PermitRootLogin yes
    StrictModes yes
    RSAAuthentication yes
    PubkeyAuthentication yes
    IgnoreRhosts yes
    RhostsRSAAuthentication no
    HostbasedAuthentication no
    PermitEmptyPasswords no
    ChallengeResponseAuthentication no
    X11Forwarding yes
    X11DisplayOffset 10
    PrintMotd no
    PrintLastLog yes
    TCPKeepAlive yes
    AcceptEnv LANG LC_*
    Subsystem sftp /usr/lib/openssh/sftp-server
    UsePAM yes
    Je viens de me rendre compte que j’ai laissé deux lignes dans le fichier rc.local (mon script de sauvegarde est à revoir, et mes idées à éclaircir !). Je suppose que cela n’intervient pas dans mes difficultés…
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    _IP=$(hostname -I) || true
    if [ "$_IP" ]; then
      printf "My IP address is %s\n" "$_IP"
    fi
    update-rc.d  ssh  enable
    invoke-rc.d  ssh  start
    exit 0
    J’ai un portable roulant Ubuntu et j’ai recopié les deux fichiers ssh_config et sshd_config depuis ce laptop avec lequel je n’ai, bien sûr aucun problème de connexion SSH, bien qu’équipé d’un parre-feu (ufw) fonctionnel. La seule modification concerne "PermitRootLogin" qui n’est pas à "yes" dans le laptop .

    Certain auront remarqué que grâce à mon fichier "etc/network/interfaces", le RPi0 est maintenant affublé d’un adresse IP. Mon problème est que je ne parviens pas à me loguer en SSH de l’extérieur, et de l’intérieur, seulement en utilisateur "pi" et pas en "root".
    Donc :
    localement (pas d’USB vers mon PC, mais vers clavier+souris)
    ssh pi@192.168.7.2
    >> OK après saisie du mot de passe,
    ssh root@192.168.7.2
    >> demande de mot de passe mais pas de connexion possible

    Depuis mon PC accessoirement équipé d'un pont (USB vers mon PC, pas de clavier+souris):
    ssh pi@192.168.7.2
    >> demande de mot de passe mais pas de connexion possible
    ssh root@192.168.7.2
    >> demande de mot de passe mais pas de connexion possible

    Quelqu’un aurait-il une idée sur la raison de mes difficultés ?

    Merci pour l’attention que vous aurez portée à ce sujet.

  2. #2
    Membre très actif

    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Pérou

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2013
    Messages : 203
    Par défaut
    Oufff, j'y suis.
    Demain (if est 01:00 localement), je donnerai les détails. Je ne marque donc pas encore le sujet comme résolu.

  3. #3
    Membre très actif

    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Pérou

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2013
    Messages : 203
    Par défaut
    Cible : Raspberry pi zero, installation 2018-04-09 NOOBS_V2_7 complète
    Desktop : OpenSUSE Leap 42.3, environnement graphique KDE3 (si si !)

    L'installation initiale est supposé faite et le RPi0 fonctionne bien. Il est connecté à une alimentation extérieure (adaptateur 5v dont les fils sont soudés sur la carte). Au premier lancement, configurer le RPI0 pour communication via SSH (Menu "framboise" -> "Préférences" -> "Configuration du Raspberry Pi").
    Néophytes : cette distribution se fait sur une carte micro-SD formatée VFAT sur laquelle vous copiez les fichiers une fois NOOBS_v2_7_0.zip décompressé. À la première mise sous tension, le système réorganise la carte SD en créant 4 partitions :
    - label : boot, montée par le desktop en /micro-SD-RPi0/boot, type vfat
    - label : RECOVERY, montée par le desktop en /micro-SD-RPi0/RECOVERY, type vfat
    - label : root, montée par le desktop en /micro-SD-RPi0/root, type ext4
    - label : SETTINGS, montée par le desktop en /micro-SD-RPi0/SETTINGs, type ext4


    Sur le desktop, monter les partitions "root" et "boot" de la carte SD.

    -------- 1 - /micro-SD-RPi0/boot/config.txt : ajouter la ligne suivante à la fin du fichier
    -------- 2 - /micro-SD-RPi0/boot/cmdline.txt : ajouter "modules-load=dwc2,g_ether " derrière "rootwait ", ce qui donne pour moi (j'ai inhibé la liaison série) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether splash plymouth.ignore-serial-consoles
    -------- 3 - /micro-SD-RPi0/root/etc/network/interfaces : ajouter en fin de fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    hotplug usb0
    iface usb0 inet static
        address 192.168.7.2
        netmask 255.255.255.0
        network 192.168.7.0
        broadcast 192.168.7.255
        gateway 192.168.7.1
        dns-nameservers 190.113.220.18 190.113.220.51 190.113.220.54
    -------- 4 - Modification du fichier /micro-SD-RPi0/ssh/sshd_config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Port 22
    Protocol 2
    HostKey /etc/ssh/ssh_host_rsa_key
    HostKey /etc/ssh/ssh_host_dsa_key
    HostKey /etc/ssh/ssh_host_ecdsa_key
    HostKey /etc/ssh/ssh_host_ed25519_key
    UsePrivilegeSeparation yes
    KeyRegenerationInterval 3600
    ServerKeyBits 1024
    SyslogFacility AUTH
    LogLevel INFO
    LoginGraceTime 120
    PermitRootLogin yes
    StrictModes yes
    RSAAuthentication yes
    PubkeyAuthentication yes
    IgnoreRhosts yes
    RhostsRSAAuthentication no
    HostbasedAuthentication no
    PermitEmptyPasswords no
    ChallengeResponseAuthentication no
    X11Forwarding yes
    X11DisplayOffset 10
    PrintMotd no
    PrintLastLog yes
    TCPKeepAlive yes
    AcceptEnv LANG LC_*
    Subsystem sftp /usr/lib/openssh/sftp-server
    UsePAM yes
    UseDNS no
    -------- 5 - Modification du fichier /micro-SD-RPi0/ssh/ssh_config :
    NOTE : à priori, cette configuration est inutile, puisqu’on ne lance pas ssh depuis le RPi0.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Host *
        SendEnv LANG LC_*
        HashKnownHosts yes
        GSSAPIAuthentication yes
        GSSAPIDelegateCredentials no
    "Démonter" la carte SD et la replacer dans le RPi0, alimenter.

    -------- 6 - Sur le desktop : "yast -> Système : Paramètres réseau"
    Configurer la connexion usb0 en 192.168.7.3 - /24 - lin-dktop-usb
    Résultat chez moi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    nom                                                 Adresse IP   Périphérique Remarque
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Linux-USB Ethernet/RNDIS Gadget                     192.168.7.3
    Pont réseau                                         192.168.1.3  br1
    RTL8111/8168/8411 PCIe Gigabit Ethernet Controller  NONE         eth0         asservi dans br1
    VT6105/VT6106D [Rhine-III]                          192.168.0.3  eth1
    -------- 7 - Sur le desktop : "yast -> Services réseau : Noms d’hôtes"
    Ajouter "192.168.7.2 rpi0"
    Néophytes : il s’agit de dire au desktop à quelle adresse IP se trouve le RPi0,
    arbtrairement nommé "rpi0".


    -------- pré-8 - Créer une clef ssh (si nécessaire) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    desktop:~$ rm /home/nomuser/.ssh/* ; # virer toutes les clés existantes
    desktop:~$ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/nomuser/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/nomuser/.ssh/id_rsa.
    Your public key has been saved in /home/nomuser/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:Blqo0xVmK4XkRZlEwrXZZ07jSix8KixKKinBXQEHSHE nomuser@desktop
    The key's randomart image is:
    +---[RSA 2048]----+
    |.ooE=B@o         |
    ...
    |=                |
    +----[SHA256]-----+
    -------- 8 - Envoyer notre clef pour connexion rapide et sécurisée en "root" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    desktop:~$ ssh-copy-id root@rpi0
    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/pserru/.ssh/id_rsa.pub"
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    root@rpi0’s password:
    
    Number of key(s) added: 1
    
    Now try logging into the machine, with:   "ssh ’root@rpi0’"
    and check to make sure that only the key(s) you wanted were added.
    -------- post-8 - Modifier MAINTENANT SEULEMENT le fichier /micro-SD-RPi0/ssh/sshd_config :
    changer "PermitRootLogin" à "without-password". Vous pouvez (sinon devez) faire ça une fois connecté via SSH depuis votre desktop.
    Néophites : Il s’agit de ne permettre la connexion SSH en "root" uniquement grâce à une clef (à priori, celle que nous avons envoyée au point 8).
    Vous pouvez le faire via SSH + VI ou 1

    -------- 9 - Vérification :
    -------- 10 - Vérification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lin-pat:~$ ssh root@rpi0
    -------- 11 - Pour notre confort avec bash :
    # 40 # alternate mappings for "page up" and "page down" to search the history
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vi /etc/inputrc ; # Décommenter les lignes 41 et 42

    # Le script commenté ci-dessus se trouve facilement sur internet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    vi /etc/bash.bashrc ; # Tout effacer et coller le texte suivant
    [ -z "$PS1" ] && return
    HISTCONTROL=ignoredups:ignorespace
    shopt -s histappend
    HISTSIZE=1000
    HISTFILESIZE=2000
    shopt -s checkwinsize
    [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
    if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
        debian_chroot=$(cat /etc/debian_chroot)
    fi
        rouge="\[\033[31m\]"
        vert="\[\033[32m\]"
        jaune="\[\033[33m\]"
        bleu="\[\033[34m\]"
        magenta="\[\033[35m\]"
        cyan="\[\033[1;36m\]"
        gris="\[\033[1;37m\]"
        blanc="\[\033[00m\]"
        h_rouge="\[\033[1;31m\]"
        h_vert="\[\033[1;32m\]"
        h_jaune="\[\033[1;33m\]"
        h_bleu="\[\033[1;34m\]"
        h_magenta="\[\033[1;35m\]"
        h_cyan="\[\033[1;36m\]"
        h_gris="\[\033[1;37m\]"
        h_blanc="\[\033[1;00m\]"
    if [ "$HOME" = "/root" ]; then
        PS1="$h_rouge\u$blanc@$h_magenta\h$blanc:$blanc\w$blanc# "
    else
        PS1="$h_jaune\u$blanc@$h_cyan\h$blanc:$blanc\w$blanc$ "
    fi
    case "$TERM" in
    xterm*|rxvt*)
        PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
        ;;
    *)
        ;;
    esac
    if [ -x /usr/bin/dircolors ]; then
        test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
        alias ls='ls --color=auto'
        alias grep='grep --color=auto'
        alias fgrep='fgrep --color=auto'
        alias egrep='egrep --color=auto'
    fi
    if [ -f ~/.bash_aliases ]; then
        . ~/.bash_aliases
    fi
    1Néophytes : pour ceux qui utilise KDE, vous pouvez éditer ces fichiers en utilisant kate : menu "fichier : ouvrir" puis saisissez
    "sftp://root@rpi0/etc/bash.bashrc" ou "sftp://root@rpi0/etc/inputrc" dans le champ "Emplacement : "


    Le desktop n'est pas encore configuré pour faire passerelle internet : le RPi0 n'y a donc pas accès. Pour ça, je complèterai cette page ultérieurement.

    Une relecture attentive par un modérateur (debian / linux embarqué) serait bienvenue. Si un utilisateur de cette page a des difficultés, qu'il n'hésite pas à me contacter par MP (Mail Personnel sur ce site).

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/07/2014, 19h44
  2. [AppleScript] [xcode] Une connexion ssh avec mon raspberry pi
    Par Invité dans le forum AppleScript
    Réponses: 0
    Dernier message: 02/07/2014, 13h23
  3. Probleme ssh avec netfilter
    Par baali_hacene dans le forum Réseau
    Réponses: 2
    Dernier message: 30/03/2006, 10h21
  4. Problème SSH avec putty entre Red hat et XP
    Par tissard dans le forum Réseau
    Réponses: 5
    Dernier message: 05/01/2006, 11h54
  5. Ssh avec X11 forwarding
    Par troumad dans le forum Réseau
    Réponses: 13
    Dernier message: 08/07/2005, 12h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo