scp copie sur ssh ne fonctionne pas - erreur refusée permission, s'il vous plaît?

83

Ça me rend dingue! Je veux juste transférer un simple fichier d'un ordinateur portable à 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 [email protected]:/media/xx/xx/xx

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

ps je pourrais faire cela autrement - je veux envoyer le fichier tar.gz qui se trouve sur mon bureau, au serveur distant dans le dossier / media / yadayda

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

Réponses:

95

D'après ce que j'ai compris, vous avez les choses dans le bon ordre, la manière générale dont un scp est fait est:

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

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

Si vous obtenez l'autorisation 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 commencer, de sorte qu'elle ne vous donnera pas la racine sur la boîte distante, c'est donc probablement le problème. Assurez-vous que l'utilisateur avec lequel vous vous connectez sur le serveur distant dispose d'autorisations en écriture sur l'emplacement où 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 de destination, puis sudo mv le fichier à partir du shell sur l'autre serveur pour le placer au bon emplacement.

Anna
la source
9
Merci, je devais ajouter une permission d'écriture au répertoire de destination
PiKey
@PiKey Cela devrait être une réponse
Code-Guru
39

Salut a eu ce même problème d'erreur de permission résolu de cette façon

Assurez-vous que le répertoire sur lequel vous copiez 192.168.0.4appartient au nom d' utilisateur de l' utilisateur.

chown username downloads

Sur votre machine locale, alors faites

sudo scp filename.zip [email protected]:/etc/Myfiles/downloads

À votre santé

mainakibui
la source
thx, était les autorisations, en particulier ici, je devais utiliser chmodsur le dossier de destination sur le serveur distant
Aquarius Power
26

Permisssion Denied 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:~/
Abhishek Kaushik
la source
2
bouée de sauvetage! : ~ / l'a fait pour moi.
Trdavidson
~/est en effet le moyen, -rest de copier récursivement tout le répertoire.
Noam Manos
9

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

Kevin
la source
7

J'ai eu un problème similaire, il s'est produit parce que sshprend -p xxxxpour spécifier le port et scpprend -P xxxxpour spécifier le port. Incohérence mineure, si facile à manquer :(

poignard
la source
Te louerai. Ne faites pas attention à moi si j'ajoute quelques mots clés Google pour le rendre plus visible:scp doesn't work Permission denied (publickey). lost connection for ec2 compute.amazonaws.com
user1717828
0

Avait le même problème. J'ai découvert que le répertoire contenant mon fichier source n'avait pas assez de permission. Je viens donc de changer le mode de manière récursive en utilisant: chmod -R 771 directory_pathsur la machine source.

Changba
la source
0

J'essayais de copier depuis ma machine locale en tant que 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. Lorsque j'ai supprimé cela de la partie source , cela a fonctionné.

Chaim Eliyah
la source