Question scp copy over ssh ne fonctionne pas - erreur refusée, s'il vous plaît?


Ça me rend fou! Je veux juste transférer un fichier simple d'un ordinateur portable vers un serveur.

J'utilise Ubuntu sur les deux machines.

Donc j'ai:

-rwxr-xr-x 1 sandro    414622 2011-10-14 23:42 sandrophoto-html.tar.gz

Et je l'envoie en utilisant:

sudo scp -P XXXX sandrophoto-html.tar.gz usern@server.local:/media/xx/xx/xx

Et je reçois: scp: /media/xx/xx/xx/sandrophoto-html.tar.gz: Permission denied

p.s. Je vais peut-être faire autrement - je veux envoyer le fichier tar.gz situé sur mon bureau au serveur distant dans le dossier / media / yadayda


68
2017-10-14 21:49


origine


Dans mon cas, c’était pour des raisons de sécurité du côté de la réception, je devais chmoder le répertoire pour permettre à l’utilisateur distant d’écrire le fichier (chmod 777 le répertoire - mais c’est un laboratoire interne) - ilansch


Réponses:


Vous avez des choses dans le bon ordre à partir de ce que je comprends, la manière générale de faire un scp est la suivante:

scp sourceuser@sourcehost:/path/to/source/file destinationuser@destinationhost:/path/to/destination/

A en juger par votre question, vous avez un fichier local que vous souhaitez envoyer au serveur de destination. Vous avez donc la bonne syntaxe qui est bonne!

Si la permission est refusée, vous n'utilisez pas le nom d'utilisateur correct ou quelque chose ne va pas avec l'authentification. Très probablement, c'est parce que la commande sudo ne fonctionne que localement, pour les débutants, donc elle ne vous donnera pas de racine sur la boîte distante, donc c'est probablement le problème. Assurez-vous que l'utilisateur que vous connectez comme sur le serveur distant dispose d'autorisations en écriture sur l'emplacement dans lequel vous essayez d'écrire.

Si le problème est que l'utilisateur de destination n'a pas accès à cet emplacement sans sudo, déplacez le fichier dans le dossier de départ de l'utilisateur final, puis lancez le fichier depuis le shell sur l'autre serveur pour le placer au bon endroit.


77
2017-10-14 22:04



Merci, j'ai dû ajouter une permission d'écriture au répertoire de destination - PiKey


Salut avait ce même problème d'erreur d'autorisation résolu de cette façon

Assurez-vous que le répertoire sur lequel vous copiez est activé 192.168.0.4 appartient à l'utilisateur Nom d'utilisateur

chown username downloads

Sur votre machine locale alors faites

sudo scp filename.zip username@192.168.0.4:/etc/Myfiles/downloads

À votre santé


30
2018-05-28 16:25



thx, était des autorisations, spécifiquement ici je devais utiliser chmodsur le dossier de destination sur le serveur distant - Aquarius Power


La permission refusée signifie que vous n'êtes pas la racine du serveur. Vous avez juste un compte là-bas. Donc, dans ce cas, vous devez faire ceci:

sudo scp -r /path2yourFolder/ username@server_Ip:/home/username

Cela copiera dans votre répertoire personnel sur le serveur.

Cela fonctionnera également:

scp -r /path2yourFolder/ username@server_Ip:~/

23
2018-05-15 18:56



bouée de sauvetage! : ~ / l'a fait pour moi. - trdavidson
~/ est en effet la voie, -r est pour copier récursivement tout le répertoire. - Noam Manos


Cette erreur s'est produite pour moi lorsque le fichier existait déjà dans l'emplacement cible et que le fichier existant disposait d'autorisations en lecture seule (empêchant le fichier d'être remplacé). Dans mon cas, je viens de me connecter et de supprimer le fichier existant et cela a corrigé le problème.


6
2018-05-15 02:21



Sainte merde. Cela a sauvé ma journée. Merci. - Massood Khaari


J'ai eu un problème similaire, c'est arrivé parce que ssh prend -p xxxx pour spécifier le port tout en scp prend -P xxxx pour spécifier le port. Incohérence mineure, si facile à rater :(


5
2018-01-25 18:13



Te louerai. Ne me dérange pas si j'ajoute quelques mots-clés compatibles avec Google pour rendre cela plus visible: scp doesn't work Permission denied (publickey). lost connection for ec2 compute.amazonaws.com - user1717828


J'essayais de copier de ma machine locale comme username@localhost; La clé SSH que j'utilisais n'était pas enregistrée pour accéder à mon localhost, donc je recevais une autorisation refusée. Quand j'ai enlevé cela du la source partie, cela a fonctionné.


0
2018-02-16 20:40





Eu le même problème. J'ai découvert que le répertoire contenant mon la source fichier n'avait pas assez de permission. Donc, je viens de changer le mode récursivement en utilisant:chmod -R 771 directory_path sur la machine source.


-1