Transférer des fichiers à l'aide de scp: autorisation refusée


24

J'essaie de transférer des fichiers d'un ordinateur distant sshvers mon ordinateur:

scp My_file.txt user_id@server:/Home

Cela devrait mettre My_file.txt dans le dossier d'accueil de mon propre ordinateur, non? Je reçois

scp / Home: autorisation refusée

Aussi quand j'essaye:, ...@server:/Desktopafin de copier les fichiers de l'ordinateur distant sur mon bureau.

Qu'est-ce que je fais mal?


1
Si vous souhaitez copier le fichier dans le dossier personnel de 'user_id', scp My_file.txt user_id@server:il copie dans le dossier personnel des utilisateurs.
Manula Waidyanatha,

Réponses:


36

Vos commandes tentent de placer le nouveau document à la racine ( /) de votre machine. Ce que vous voulez faire est de les transférer à votre domicile répertoire (puisque vous n'avez pas autorisé à écrire /). Si le chemin d'accès à votre domicile ressemble à quelque chose comme /home/erezceci:

scp My_file.txt user_id@server:/home/erez/

Vous pouvez remplacer le chemin d'accès à votre répertoire personnel par le raccourci ~/, de sorte que ce qui suit aura le même effet:

scp My_file.txt user_id@server:~/

Vous pouvez même laisser complètement le chemin du côté distant; cela signifie votre répertoire personnel.

scp My_file.txt user_id@server:

Autrement dit, pour copier le fichier sur votre bureau, vous pouvez le transférer vers /home/erez/Desktop/:

scp My_file.txt user_id@server:/home/erez/Desktop/

ou en utilisant le raccourci:

scp My_file.txt user_id@server:~/Desktop/

ou en utilisant un chemin relatif sur le côté distant, qui est interprété par rapport à votre répertoire personnel:

scp My_file.txt user_id@server:Desktop/

Éditer:

Comme @ckhan l'a déjà mentionné, vous devez également échanger les arguments, il doit être

scp FROM TO

Donc, si vous souhaitez copier le fichier My_file.txtdu serveur user_id@serversur votre bureau, vous devez essayer ce qui suit:

scp user_id@server:/path/to/My_file.txt ~/Desktop/

Si le fichier My_file.txtse trouve dans votre répertoire personnel sur le serveur, vous pouvez à nouveau utiliser le raccourci:

scp user_id@server:~/My_file.txt ~/Desktop/

- J'ai essayé: "~ /" pour 'Home' maintenant, et aussi "~ / Desktop /. Les deux ont donné: My_file.txt 100% 0 0.0 KB / s 00:00, et je ne vois pas les fichiers dans mon Qu'est-ce que je fais encore mal? Merci beaucoup!
Erez

Sur votre deuxième exemple de commande, le ~doit être protégé de l'évaluation afin d'être évalué sur l'hôte distant: \~par exemple.
dan

1
Afin de vous remercier, je me suis inscrit sur le site. Merci d'avoir sauvé ma journée :)
Ad Infinitum

7

Je suis venu ici pour "Transférer des fichiers en utilisant scp: permission refusée" car j'avais la même erreur.

Dans mon cas, le fichier téléchargé avec scp aurait écrasé un fichier appartenant à root, et je n'étais pas root. En bref, vérifiez la propriété du fichier en cours d'écrasement.


1
Dans ce cas, c'est parce qu'il essaie d'écrire /Homeet n'est pas root, il n'a pas accès en écriture à l'extérieur~/
Shadur

Tu m'aides.
longdeqidao

4

cela semble être comme un problème d'autorisation

Le fichier peut ne pas avoir d'autorisations de lecture car il est remis au serveur de destination en tant que compte source.

vous devez vous assurer que le fichier à la source possède les autorisations requises, en particulier l'autorisation de lecture

-rw-r - r--

chmod 744

puis scp le fichier à destination. Cela sera résolu


3
-rw-r--r--est 644, pas 744. La définition d'une autorisation exécutable sur un fichier qui n'est pas réellement exécutable peut provoquer des problèmes.
G-Man dit `` Réintègre Monica ''

3

Ce qui fixe la « permission refusée » pour moi était, sur le serveur distant, changer la propriété du dossier à la racine: (! Cela peut se produire lorsque vous envoyez un fichier à un utilisateur non root, et le répertoire est la propriété de root) sur la machine distante (destination copie):

sudo chown (your username) (remote folder)

Pour être sûr également, activez toutes les autorisations sur le dossier distant: (pas toujours nécessaire):

sudo chmod 777 (remote folder)

1

Vous avez les arguments à scprenverser. C'est d'abord la source, puis la destination cp. man scppour plus de détails.


1

Permisssion Denied signifie que vous n'êtes pas la racine du serveur. Vous détenez simplement 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:~/

0

Installez un outil Windows "mRemoteG" sur www.mremoteng.org/

Créez votre connexion SSH à la case souhaitée.

Cliquez sur le menu "Transférer le fichier".

Il permettra de transférer facilement des fichiers de Windows vers Linux.

Merci.


0

Amazon Linux AMI

Assurez-vous que vous devez définir le chemin absolu du serveur, depuis votre domicile dans le cas actuel:

scp file.txt SSH-ALIAS:/home/YOUR_USER/

0

Les mêmes autorisations s'appliquent des deux côtés du scp. Vous obtiendrez cette erreur si l'utilisateur n'a pas l'autorisation d'écrire dans la destination. Les symptômes semblent impliquer la source, mais dans mon cas, la destination a été créée par root et ne disposait pas de l'autorisation d'écriture pour le compte d'utilisateur prévu.


0

Dans mon cas, j'ai également essayé d'accorder toutes les autorisations avec -R au dossier, mais j'ai quand même eu l'erreur sur l'autorisation.

J'ai dû supprimer "/" avant le chemin du serveur cible et du dossier. La raison en est que Downloads est le premier dossier que je peux lister après que je ssh sur le serveur, par exemple: ssh tiennsloit@13.76.91.2

Cela marche:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip tiennsloit@13.76.91.2: Téléchargements

Cela ne fonctionnait pas:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip tiennsloit@13.76.91.2: / Téléchargements


0

Solution facile. Assurez-vous que vous êtes root. SCP à la télécommande et il vous demandera le mot de passe root de cette machine. Juste eu ce problème qui était la solution. Vous les enracinez root.


Étant donné que les connexions root sont normalement désactivées dans sshd_config , vous devez montrer à l'OP comment changer cela (bien que ce ne soit pas recommandé).
ajgringo619

Pourquoi insistez-vous pour utiliser root pour copier un (n'importe quel) fichier? Remarquez également la réponse acceptée d'il y a ~ 7 ans ...
Jeff Schaller

-3

avant d'utiliser la commande scp, assurez-vous de donner des autorisations de lecture, d'écriture et d'exécution à tout le monde à l'extérieur. "chmod 777 nom_fichier"


vous pouvez copier des fichiers qui ne sont pas 777
Archemar
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.