2010-05-25 4 views

Répondre

1

Vous ne voulez probablement pas utiliser SFTP. Pour un transfert de fichiers sécurisé avec PHP, la solution la plus simple est TLS (HTTPS).

Les étapes exactes dépendent de votre serveur Web.

2

Sur une boîte Linux, il est à peu près comme ceci (en supposant que vous avez OpenSSH):

  • Modifier sshd_config (dans/etc/ssh sur les saveurs redhat et clones) et décommentez la ligne qui permet à l'SFTP sous-système. C'est généralement au bas du fichier chaque fois que je fais cela. Si vous ne voyez pas cette ligne (qui commence par "Subsystem sftp"), faites ceci:
    • Trouvez le programme "sftp-server" dans votre système de fichiers (sur ma boîte CentOS, dans/usr/libexec/OpenSSH)
    • echo "Subsystem sftp /path/to/sshd-server" >>/path/to/sshd_config (NOTE lES dEUX> 's! Mettez deux, ou vous écraserez la configuration SSH existante!)
  • restart sshd mais vous le faites. Sur les distributions redhat-aromatisées, service sshd restart devrait le faire.

Cela suffit pour activer SFTP. Une fois cela fait, vous devrez créer des comptes et définir des mots de passe pour vos utilisateurs SFTP. Notez que chaque utilisateur aura généralement aussi un accès SSH - mettre le shell à/sbin/nologin ou/bin/false désactivera également SFTP. Si vous avez cPanel, son shell "no shell access" semble fonctionner correctement pour permettre SFTP mais pas SSH. (On dirait que le problème peut avoir quelque chose à voir avec le délai que le trucage no-shell de cPanel fait, ce qui donnerait au sous-système SFTP le temps de démarrer.)

Questions connexes