📂 SFTP
Commande interactive pour transférer des fichiers via SSH, avec reprise, navigation distante et automatisation simple.
SFTP (SSH File Transfer Protocol) réutilise le chiffrement SSH : même utilisateur, mêmes clés, mêmes règles de firewall.
Connexion
# Ouvrir une session SFTP
sftp user@host
# Spécifier un port custom
sftp -P 2222 user@host
# Utiliser une clé précise
sftp -i ~/.ssh/id_ed25519 user@host
# Via un alias SSH déjà défini
sftp prod-webNavigation et gestion
# Navigation distante
pwd # répertoire distant courant
cd /var/www # changer de dossier distant
ls -lah # lister distant
mkdir releases # créer distant
rm fichier # supprimer distant
# Navigation locale
lpwd # dossier local courant
lcd /tmp # changer de dossier local
lls # lister localTransfert de fichiers
# Télécharger
get fichier.log # vers le dossier local courant
get -p fichier.log # préserver dates et permissions
get -r /var/www/html/ site/ # dossier complet
# Envoyer
put build.tar.gz /var/www/ # upload simple
put -r public/ /var/www/html/ # upload récursif
put -a gros.iso # reprendre un upload interrompu
# Mode batch pour plusieurs fichiers
mget *.log
mput *.sqlAutomatiser
# Exécuter des commandes depuis un script
sftp -b script.sftp user@host
# Exemple de script.sftp
lcd /tmp/backups
cd /var/backups
mget *.tar.gz
bye
# Forcer l'échec si l'auth échoue (CI/CD)
sftp -oBatchMode=yes user@host <<'EOF'
get /var/log/syslog
EOFUtiliser ~/.ssh/config
Host prod-web
HostName 10.0.0.20
User deploy
Port 2222
IdentityFile ~/.ssh/id_prod
Compression yesUne fois configuré : sftp prod-web.
Dépannage
Permission denied
# Vérifier les droits locaux
ls -ld ~/.ssh ~/.ssh/id_*
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
# Vérifier les droits distants
sftp user@host
sftp> ls -la
sftp> chmod 640 fichier.txt