web-dev-qa-db-fra.com

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

J'essaie de transférer des fichiers depuis un ordinateur distant en utilisant ssh vers 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:/Desktop, afin de copier les fichiers de l'ordinateur distant sur mon bureau.

Qu'est-ce que je fais mal?

29
Erez

Vos commandes tentent de mettre le nouveau document dans root (/) de votre machine. Ce que vous voulez faire, c'est les transférer dans votre répertoire home (puisque vous n'avez pas la permission d'écrire dans /). Si le chemin d'accès à votre domicile est quelque chose comme /home/erez essayez ce qui suit:

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

Vous pouvez remplacer le chemin d'accès à votre répertoire personnel par le raccourci ~/, les éléments suivants auront donc 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 souhaiterez peut-être 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 voulez copier le fichier My_file.txt depuis le serveur user_id@server sur votre bureau, vous devriez essayer ce qui suit:

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

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

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

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.

8
PJ Brunet

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

4
Tabbu

Ce qui a corrigé la "permission refusée" pour moi était, sur le serveur distant, de changer la propriété du dossier en root: (Cela peut se produire lorsque vous envoyez un fichier à un utilisateur non root et que le répertoire appartient à root!) - Sur la machine distante (destination de la 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)
3
Stan Tatarnykov

Vous avez les arguments pour scp inversés. C'est d'abord la source, puis la destination, comme cp. man scp pour plus de détails.

1
ckhan

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:~/
1
Abhishek Kaushik

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

Dans mon cas, j'ai également essayé d'accorder toutes les autorisations avec -R au dossier, mais j'ai toujours 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 [email protected]

Cela marche:

Sudo scp -rp /Users/Macintosh.vn/Downloads/bbhs_20190301.Zip [email protected]: Téléchargements

Cela ne fonctionnait pas:

Sudo scp -rp /Users/Macintosh.vn/Downloads/bbhs_20190301.Zip [email protected]:/Téléchargements

0
tiennsloit

Amazon Linux AMI

Assurez-vous que vous devez définir le chemin absolu du serveur, à partir de home dans le cas actuel:

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

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
jinzai

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.

0
Richard Evans