J'essaie d'utiliser le Laravel Flysystem avec l'adaptateur sftp de PHP League (league/flysystem-sftp). En utilisant Laravel 5.4 et la version 3.7 du Flysystem.Laravel Flysystem sftp Permission refusée
Lorsque je tente de mettre un fichier sur le serveur, je reçois le message:
Impossible de se connecter à someadress.com:22. Erreur 13. Autorisation refusée
Voici le code:
$box = new Filesystem(new SftpAdapter(Config::get('flysystem.connections.sftp')));
$box->put('test.txt', 'bar');
et les détails de connexion de la configuration:
'sftp' => [
'driver' => 'sftp',
'host' => 'someadress.com',
'port' => 22,
'username' => 'someuser',
'password' => 'ArndomPa55',
'privateKey' => '/home/user/.ssh/id_rsa',
'root' => '/var/www/html/site/box/',
'timeout' => 20,
],
Quand je fais une connexion SSH à partir du serveur où cela est en cours d'exécution, il se connecte très bien, sans invite de mot de passe, il utilise donc la clé privée. Donc je ne sais pas pourquoi cela ne fonctionne pas.
J'ai vérifié le sécurisé log sur le serveur de réception et rien ne s'y trouve.
Maintenant c'est un bon MCVE. Avez-vous résolu le problème? Ce problème se produit lorsque l'utilisateur local sous lequel l'application s'exécute n'a pas l'autorisation de lire */home/user/.ssh/id_rsa *. Cela fonctionne à partir de la ligne de commande parce que votre utilisateur * a * l'autorisation de lire cette clé. –
De plus, vous spécifiez une option "password" avec "privateKey", qui ne fonctionnera pas si le mot de passe * n'est pas la phrase secrète de la clé privée *. Lorsque les deux sont utilisés ensemble, la valeur de mot de passe doit être la phrase secrète de la clé privée, pas le mot de passe de l'utilisateur distant. –
@CyRossignol J'ai eu ce travail à la fin, j'ai supprimé le mot de passe, mais il s'est avéré être un problème avec Apache étant l'utilisateur qui tente de se connecter, en tant que tel je devais lui donner accès et avoir les clés dans un endroit l'autorisation d'accès. –