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?
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/
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/
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.
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
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)
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.
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:~/
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.
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
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/
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.
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.