Outils pour utilisateurs

Outils du site


blog

Pb Ansible - sftp transfer mechanism failed

Warn - sftp transfer mechanism failed
Connexion distante
$ ansible -m ping -i inv.lst -u root srv1
[WARNING]: sftp transfer mechanism failed on [srv1]. Use ANSIBLE_DEBUG=1 to see detailed information
srv1 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
$ sftp root@srv1
subsystem request failed on channel 0
Connection closed
Sur la cible
# tail -f /var/log/messages>
Aug  7 10:25:19 srv1 sshd[30049]: Accepted publickey for root from 192.168.1.22 port 45878 ssh2
Aug  7 10:25:19 srv1 sshd[30051]: subsystem request for sftp
Aug  7 10:25:19 srv1 sshd[30051]: error: subsystem: cannot stat /usr/sbin/sftp-server: No such file or directory
Aug  7 10:25:19 srv1 sshd[30051]: subsystem request for sftp failed, subsystem not found
# grep sftp /etc/ssh/sshd_config
Subsystem       sftp    /usr/libexec/openssh/sftp-server
Solution

Sur la cible

ln -s /usr/libexec/openssh/sftp-server /usr/sbin/sftp-server

Ou

/etc/ssh/sshd_config

#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
systemctl restart sshd

Ou

alias ansible_host=192.168.1.102 ansible_ssh_transfer_method=scp

Ou

ansible.cfg

[ssh_connection]
# Control the mechanism for transferring files (old)
#   * smart = try sftp and then try scp [default]
#   * True = use scp only
#   * False = use sftp only
#scp_if_ssh = smart
 
# Control the mechanism for transferring files (new)
# If set, this will override the scp_if_ssh option
#   * sftp  = use sftp to transfer files
#   * scp   = use scp to transfer files
#   * piped = use 'dd' over SSH to transfer files
#   * smart = try sftp, scp, and piped, in that order [default]
#transfer_method = smart
2025/03/24 15:06

Pb ansible - failure when attempting to use callback plugin - ascii codec can t decode byte in position ordinal not in range

ansible-playbook install-plop.yml

Erreur

TASK [plop : configuration php-fpm plop] *********************************
 [WARNING]: Failure when attempting to use callback plugin (<ansible.plugins.callback.default.CallbackModule object at 0x7f9681409b10>): 'ascii' codec can't decode byte 0xc3 in position
755: ordinal not in range(128)

Solution : sed_suppression_caracteres_non_ascii

Un caractère spécial c'est glissé. On peut les enlever avec Perl

perl -lpe 's/[[:^print:]]+//g' roles/plop/templates/php-plop.conf.j2 > roles/plop/templates/php-plop1.conf.j2

Comparons les deux fichiers avec diff ou vimdiff, le pb venait des accents dans les commanditaires

< # Doit tre accessible en criture par l'utilisateur PHP-FPM (dfinie dans ce fichier "user = ")
---
> # Doit être accessible en écriture par l'utilisateur PHP-FPM (définie dans ce fichier "user = ")
2025/03/24 15:06

Pb accents extraire un zip qui contient des fichiers non utf-8

Voir : pb_unrar_accents

Source : https://suumitsu.eu/links/?3hr51Q

Extraire un ZIP qui contient des fichiers non UTF-8 Procéder ainsi dans un terminal:

export LANG=ja_JP
7z x fichier.zip

Ouvrir un nouveau terminal (ou restaurer $LANG), et puis:

convmv --nosmart --notest -r -f shift-jis -t utf8 .

(dans mon cas, le contenu du ZIP étant codé en SHIFT_JIS, d'après la détection d'un fichier texte inclus grâce à uchardet)

2025/03/24 15:06

Pb - GPG

Erreur gpg gpg: public key decryption failed: Too much data for IPC layer

Le problème est du à l'usage d'une clef de chiffrement trop grande (16k au lieu de 4k)

$ LANG=C gpg --decrypt data.enc 
gpg: encrypted with 16384-bit ELG key, ID 0xFF2019364801196D, created 2014-10-11
      "Jean-Baptiste DUPOND <root@acme.fr>"
gpg: public key decryption failed: Too much data for IPC layer
gpg: decryption failed: No secret key

Il vaut mieux utiliser des clefs de taille standard à moins de savoir vraiment ce que vous faites.
Souvent le mieux est l'ennemie du bien

Problèmes liés au fait d'avoir une clef trop grande :

  • Ne fonctionne pas partout
  • Même si cela fonctionne, rien ne garantie que cela continuera à fonctionner après la prochaine une mise à jour.
  • Ne fonctionne pas sur les cartes à puce.
  • Aucune garantie que vous n'introduisez pas une vulnérabilité (usage non testé, non validé…)
  • Les petits fichiers chiffrés prendrons plus de place
  • Temps plus élevé pour chiffrer / déchiffrer

Cela dit le problème se pose ici pour déchiffrer. Je n'ai jamais rencontré de problème pour chiffrer avec des sous-clef de 16k et une clef primaire de taille normale.

La solution ici https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1445684.html

Il suffit de rechercher les fichiers command.c et de changer

diff --git a/agent/command.c b/agent/command.c
index 7fc28ad..9522f89 100644
--- a/agent/command.c
+++ b/agent/command.c
@@ -49,7 +49,7 @@
 /* Maximum allowed size of the key parameters.  */
 #define MAXLEN_KEYPARAM 1024
 /* Maximum allowed size of key data as used in inquiries (bytes). */
-#define MAXLEN_KEYDATA 4096
+#define MAXLEN_KEYDATA 8192
 /* The size of the import/export KEK key (in bytes).  */
 #define KEYWRAP_KEYSIZE (128/8)

Sous Debian

apt-get source gpg
sudo apt-get build-dep

Pour contruire un paquet Debian voir https://saveriomiroddi.github.io/Building-a-debian-deb-source-package-and-publishing-it-on-an-ubuntu-ppa/

dpkg-buildpackage -rfakeroot -b -uc -us

Ou

debuild -b -uc -us

Erreur Key generation failed: Permission denied
gpg --gen-key

Erreur

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: agent_genkey failed: Permission denied
Key generation failed: Permission denied
$ ls -l  $(tty)
crw------- 1 root tty 136, 0 Mar 30 15:59 /dev/pts/0

Solution :

# export GPG_TTY=$(tty)
# sudo chown MonUser /dev/pts/0
sudo chown $(whoami) $(tty)
Pb gpg: cancelled by user - gpg: Key generation canceled.
gpg --gen-key
Real name: aaaaaa
Email address: aaa
Not a valid email address
Email address: aaa@localhost
Comment:
You selected this USER-ID:
    "aaaaaa <aaa@localhost>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.

gpg: cancelled by user
gpg: Key generation canceled.
Solution
chmod o+rw $(tty)
# ou
script /dev/null

ou

dnf install pinentry
mkdir ~/.gnupg -m 700
echo "pinentry-program /usr/bin/pinentry-curses" >> ~/.gnupg/gpg-agent.conf
Pb gpg: public key decryption failed: Permission denied
Solution
$ gpg --decrypt --pinentry-mode=loopback example.gpg

Pb de taille ! Err out of secure memory while allocating 4096 bytes

Normalement l'opération de chiffrement et de signature peut être réalisé en une fois. Mais à cause de ma clef de 16k, ça bug

$ gpg -r jean@acme.fr --sign --encrypt data.dat
gpg: out of secure memory while allocating 4096 bytes
gpg: (this may be caused by too many secret keys used simultaneously or due to excessive large key sizes)
Solution : Compilation sous Debian (et patch)
sudo apt-get build-dep gnupg
apt-get source gnupg
cd ~/gnupg-1.4.18
./configure --enable-large-secmem

FIXME Voir :

  • proc_sec_gpg2.odt
  • pgp_7663c664.pdf
2025/03/24 15:06

Pb - Debian - Pas d'affichage des accents en mode console

Solution

apt-get install console-setup 
# DEPS : keyboard-configuration console-setup-linux xkb-data console-setup

Autres

A tester

unicode_start
2025/03/24 15:06
blog.txt · Dernière modification : de 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki