rncp
Cette page résume mes notes personnelles (obso1337)
rncp est un utilitaire de transfert de fichiers via la pile Reticulum.
rncp en tant que service
créer le fichier /etc/systemd/system/rncp.service
[Unit]
Description=Reticulum RNCP File Transfer Service
After=network.target rnsd.service
Requires=rnsd.service
[Service]
Type=simple
User=chris
WorkingDirectory=/home/chris/rncp_received
ExecStart=/usr/bin/python3 -u /usr/local/bin/rncp --listen --verbose
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
A la ligne ExecStart, on préfixe rncp de "/usr/bin/python3 -u" sinon il n'y a pas de logging dans journald
activation du service
sudo systemctl daemon-reload
sudo systemctl enable rncp
sudo systemctl start rncp
Vérification du statut
sudo systemctl status rncp
Identités
Générer une identité pour rncp
$ rnid -g ~/.reticulum/storage/identities/rncp
Afficher l'identité
$ rnid -i ~/.reticulum/storage/identities/rncp -p
[2026-05-24 21:42:47] Loaded Identity <7ea4f455d590e3b2f1106125268ee64b> from /home/on3pwn/.reticulum/storage/identities/rncp
[2026-05-24 21:42:47] Public Key : 1ca00f5d8c28fb69f0bb9ddd26de815c38ccfc2f9072e93b786424be1f8ce068b6162445235bbe0faf7795a6bc4b37c88c104cabba25f8ad6e90e3ed6f835ff2
[2026-05-24 21:42:47] Private Key : Hidden
Ce qui nous intéresse c'est "Loaded Identity" qui est l'identité qu'il faut échanger avec l'hôte distant
S'il s'agit d'un serveur, il faut mettre l'identité de l'hôte distant dans ~/.rncp/allowed_identities
--> Redémarrer le service rncp si ~/.rncp/allowed_identities est modifié.
S'il s'agit d'un échange ponctuel il faut que l'hôte listener ajoute "-a <remote_identity> pour autoriser l'hôte client à transférer son fichier
$ rncp /tmp/toto efc008551421e522268a388e9c738b30
Transfer complete 100.0% - 28 B of 28 B - 279 bps
/tmp/toto copied to <efc008551421e522268a388e9c738b30>