# RPi 4 et boitier Argon One M.2 (avec SSD M.2)
https://www.argon40.com/argon-one-m-2-case-for-raspberry-pi-4.html
Le boitier accepte les SSD M.2 (Key-B ou Key-B&M)
### Installer Raspberry Pi OS sur la MicroSD:
Télécharger [Raspberry Pi OS](https://www.raspberrypi.org/software/operating-systems/)
```
https://downloads.raspberrypi.org/raspios_full_armhf/images/raspios_full_armhf-2021-01-12/2021-01-11-raspios-buster-armhf-full.zip
```
Copier Raspberry Pi OS sur la MicroSD avec [Etcher](https://www.balena.io/etcher/)
Booter sur la MicroSD.
Mettre à jour l'OS et le firmware:
```bash
$ sudo apt update
$ sudo apt full-upgrade
$ sudo rpi-update
```
Redémarrer le Raspberry.
Installer le dernier bootloader;
```bash
$ sudo rpi-eeprom-update -d -a
```
Redémarrer le Raspberry.
### Configurer le boot du Raspberry Pi:
Ouvrir **raspi-config**:
```bash
$ sudo raspi-config
```
1. Choisir **Advanded Options** puis Enter
2. Choisir **Bootloader Version** puis Enter
3. Choisir **Latest** (Use the latest version boot ROM software) puis Enter
4. Choisir **Non** pour utiliser Latest boot ROM
5. Choisir **Advanded Options** puis Enter
6. Choisir **Boot Order** puis Enter
7. Choisir **USB Boot** (si une carte SD est présente, le Raspberry démarrera sur la carte SD) puis Enter
### Copier la carte SD sur le disque SSD:
1. Lancer **SD Card Copier** depuis le menu Démarrer, section Accessoires.
2. Choisir la carte SD pour **Copy From Device**.
3. Choisir le SSD pour **Copy to Device**.
4. Cliquer sur **Start**.
5. La copie dure une dizaine de minutes...
6. **Eteindre** le Raspberry.
7. **Retirer la carte SD**.
8. **Redémarrer** le Raspberry qui boote sur le SSD.
### Outils Argon:
Installer Bouton Power et contrôle ventilo:
```bash
$ curl https://download.argon40.com/argon1.sh | bash
```
Fonctions Bouton Power:
| Argon One Pi 4 State | Action | Function |
| -------------------- | ------------------ | ------------------- |
| OFF | Appui court | Démarrer |
| ON | Appui long (>= 3s) | Arrêter et éteindre |
| ON | Appui court (< 3s) | rien |
| ON | Double tap | Reboot |
| ON | Appui long (>= 5s) | Forcer l'arrêt |
Vitesse ventilo:
| CPU Temp | Puissance ventilo |
| -------- | ----------------- |
| 55° C | 10% |
| 60° C | 55% |
| 65° C | 100% |
Pour configurer:
```bash
$ argonone-config
```
Désinstaller:
```bash
$ argonone-uninstall
```
#### [Mise à l'heure:](heure.md)
#### Installer le correcteur orthographique français:
```bash
$ sudo apt-get install myspell-fr
```
### Installer des logiciels:
Gestionnaire de mot-de-passe: KeepassXC (keepassxc-2.3.4)
### Clé SSH:
#### Clé une clé SSH:
```bash
$ ssh-keygen -t rsa -b 4096 -C "Clé sur Raspberry4"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pi/.ssh/id_rsa):
Created directory '/home/pi/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Passphrases do not match. Try again.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/pi/.ssh/id_rsa.
Your public key has been saved in /home/pi/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:6TzjtL9Q31LwOwRAXMLyR2OEO+fYNlc5ccyux4zvhGo Clé sur Raspberry4
The key's randomart image is:
+---[RSA 4096]----+
| +++o o |
| . +o+ .+|
| o +o. .+|
| .+ o+ oo|
| S .B +*.|
| o ...=++o+|
| B .oo=o.|
| o = Eo o.|
| o.oo. ..|
```
#### Répertoire `~/.ssh`
```bash
pi@framboise:~/.ssh $ ls -la
total 28
drwx------ 2 pi pi 4096 févr. 4 14:35 .
drwxr-xr-x 33 pi pi 4096 févr. 9 13:46 ..
-rw------- 1 pi pi 846 juin 1 2019 authorized_keys
-rw-r--r-- 1 pi pi 369 févr. 4 14:41 config
-rw------- 1 pi pi 1675 févr. 4 2019 id_rsa
-rw-r--r-- 1 pi pi 394 févr. 4 2019 id_rsa.pub
-rw-r--r-- 1 pi pi 1776 févr. 4 14:49 known_hosts
```
#### Copier la clé publique ssh sur le serveur distant:
```bash
$ ssh-copy-id -i ~/.ssh/id_rsa.pub bruno@maboiteverte.fr
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/pi/.ssh/id_rsa.pub"
The authenticity of host 'maboiteverte.fr (212.227.191.167)' can't be established.
ECDSA key fingerprint is SHA256:iw66SSVTlEmiXO4kayKS1lHPbrTb5IT3CJtu9c4U7V4.
Are you sure you want to continue connecting (yes/no)? yes
/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
Password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'bruno@maboiteverte.fr'"
and check to make sure that only the key(s) you wanted were added.
```
#### 1ere connection sans mot-de-passe:
```bash
$ ssh 'bruno@maboiteverte.fr'
Enter passphrase for key '/home/pi/.ssh/id_rsa':
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-96-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
* Canonical Livepatch is available for installation.
- Reduce system reboots and improve kernel security. Activate at:
https://ubuntu.com/livepatch
New release '20.04.2 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Last login: Sat Feb 20 16:57:19 2021 from 86.209.226.200
bruno@localhost:~$
```
#### Créer le ssh-agent:
```bash
$ eval $(ssh-agent -s)
Agent pid 3551
```
#### Ajouter la clé ssh au ssh-agent:
```bash
$ ssh-add
Enter passphrase for /home/pi/.ssh/id_rsa:
Identity added: /home/pi/.ssh/id_rsa (Clé sur Raspberry4)
```
#### Pour retirer la clé privée
```bash
$ kill PROCESSID
```
### Configurer le serveur ssh:
```bash
$ sudo nano /etc/ssh/sshd_config
# Ajouter:
Protocol 2
Port 36722
PasswordAuthentication no
PermitEmptyPasswords no
X11Forwarding no
ClientAliveInterval 1500
MaxAuthTries 3
PermitRootLogin no
```
#### Utiliser le protocole ssh version 2:
```bash
Protocol 2
❯ ssh -1 -p '36722' 'pi@raspberrypi4.local'
SSH protocol v.1 is no longer supported
```
#### Durée de vie de la connexion:
```bash
ClientAliveInterval 1500 # seconds
```
#### Connexion par clés uniquement:
```bash
PasswordAuthentication no
```
#### Limiter le nombre d'essais (mauvais mot-de-passe)
```bash
MaxAuthTries 3
```
#### Désactiver la connection en root:
```bash
PermitRootLogin prohibit-password # connection root avec clé ssh uniquement
PermitRootLogin no # connection root interdite
```
#### N'autoriser qu'une seule IP à se connecter:
```bash
ListenAddress 192.168.1.2
```
#### N'autoriser que certains utilisateurs:
```bash
AllowUsers user1 user2
```
#### Redémarrer le service ssh:
```bash
$ sudo service ssh restart
```
#### Si pas besoin de SSH, il faut le désactiver:
```bash
$ sudo systemctl stop sshd
$ sudo systemctl disable sshd
```
### Node:
```bash
# Par défaut (Raspi OS)
$ node -v
v10.24.0
```
#### Installer nvm:
```bash
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
# est ajouté au .bashrc:
export NVM_DIR="$HOME/.config/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
```
#### Installer node:
```bash
$ nvm install --lts=fermium
Installing with latest version of LTS line: fermium
Downloading and installing node v14.16.0...
$ node -v
v14.16.0
```
### Samba:
#### Installer Samba:
```bash
$ sudo apt install samba samba-common-bin smbclient cifs-utils
```
#### Configurer:
```bash
$ sudo nano /etc/samba/smb.conf
# Ajouter dans[global] au début:
[global]
## Browsing/Identification ###
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = raspberrypi4
security = user
map to guest = bas user
dns proxy = no
# Ajouter le partage à la fin:
[shared]
comment = Dossier partage dans le dossier User
path = /home/pi/shared
writeable = Yes
create mask = 0777
directory mask = 0777
public = no
```
#### Créer un mot-de-passe Samba pour l'utilisateur pi:
```bash
$ sudo smbpasswd -a pi
New SMB password:
Retype new SMB password:
Added user pi.
```
#### Redémarrer le service Samba:
```bash
$ sudo systemctl restart smbd
```
#### Vérifier l'état du service Samba:
```bash
$ sudo systemctl status smbd.service
● smbd.service - Samba SMB Daemon
Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2021-03-03 18:33:53 CET; 6min ago
```
### Copier des fichiers:
#### scp:
```bash
# Copier des fichiers vers le Rpi4:
$ scp -P36722 requirements.txt pi@raspberrypi4.local:Desktop/
requirements.txt 100% 1215 417.8KB/s 00:00
# Copier des fichiers depuis le Rpi4:
$ scp -P36722 pi@raspberrypi4.local:Desktop/ex/hostname hostname
hostname 100% 13 4.0KB/s 00:00
```
#### sftp:
```bash
```
```bash
sudo tasksel
```