Jag försöker överföra filer från fjärrdator med ssh
till min dator:
scp My_file.txt user_id@server:/Home
Detta ska sätta My_file.txt i hemmappen på min egen dator, eller hur? Jag får
scp / Home: tillåtelse nekad
Även när jag försöker: ...@server:/Desktop
, för att kopiera filerna från fjärrdatorn till mitt skrivbord.
Vad gör jag fel?
Kommentarer
Svar
Dina kommandon försöker lägga det nya dokumentet till root (/
) på din maskin. Vad du vill göra är att överföra dem till din hem -katalog (eftersom du inte har behörighet att skriva till /
). Om sökvägen till ditt hem är ungefär som /home/erez
prova följande:
scp My_file.txt user_id@server:/home/erez/
Du kan ersätta sökvägen till din hemkatalog med genvägen ~/
, så följande kommer att ha samma effekt:
scp My_file.txt user_id@server:~/
Du kan till och med lämna ut hela vägen på fjärrsidan; det betyder din hemkatalog.
scp My_file.txt user_id@server:
Det vill säga om du vill kopiera filen till skrivbordet kanske du vill överföra den till /home/erez/Desktop/
:
scp My_file.txt user_id@server:/home/erez/Desktop/
eller med hjälp av genvägen:
scp My_file.txt user_id@server:~/Desktop/
eller med en relativ sökväg på fjärrsidan, som tolkas i förhållande till din hemkatalog:
scp My_file.txt user_id@server:Desktop/
Redigera:
Som @ ckhan redan nämnt, du måste också byta argumenten, det måste vara
scp FROM TO
Så om du vill kopiera filen My_file.txt
från servern user_id@server
till skrivbordet bör du försöka med följande:
scp user_id@server:/path/to/My_file.txt ~/Desktop/
Om filen My_file.txt
finns i din hemkatalog på servern. Du kan återigen använda genvägen:
scp user_id@server:~/My_file.txt ~/Desktop/
Kommentarer
- – Jag ’ har försökt: ” ~ / för ’ Hem ’ nu, och även ” ~ / Skrivbord /. Båda resulterade i: My_file.txt 100% 0 0,0 KB / s 00:00, och jag kan inte se filerna i mina mappar. Vad gör jag fortfarande fel? Tack så mycket!
- I ditt andra kommandoexempel ska
~
skyddas från utvärdering så att den utvärderas på fjärrvärden:\~
till exempel. - För att tacka dig registrerade jag mig på webbplatsen. Tack för att du räddade min dag 🙂
Svar
Jag kom hit för ”Överför filer med scp: tillstånd nekad ”eftersom jag hade samma fel.
I mitt fall skulle filen som hämtats med scp ha skrivit över en fil som ägs av root, och jag var inte root. Kort sagt, kontrollera äganderätten till den fil som överskrivna.
Kommentarer
- I detta fall är det ’ eftersom han ’ försöker skriva till
/Home
och inte är root, han har inte ’ t har skrivåtkomst utanför~/
- Du hjälper mig.
Svar
Vad som fixade ”tillåtelse nekad” för mig var att ändra fjärrservern till root: (Detta kan hända när du skickar en fil till en icke-root-användare och katalogen ägs av root! ) På fjärrmaskinen (kopiering av dest.):
sudo chown (your username) (remote folder)
Aktivera också alla behörigheter i fjärrmappen: (Inte alltid nödvändigt):
sudo chmod 777 (remote folder)
Svar
detta verkar vara som ett tillståndsproblem
Filen kanske inte har läsbehörigheter eftersom den levereras till destinationsservern som källkonto.
du måste se till att källfilen har behörighet, särskilt läsbehörighet
-rw-r – r–
chmod 744
scp sedan filen till destinationen. Detta kommer att lösas
Kommentarer
-
-rw-r--r--
är 644, inte 744. Ställa in körbar behörighet på en fil som inte är exekverbar kan orsaka problem.
Svar
Du har argumenten till scp
omvänd.Det är källan först, sedan destination, som cp
. man scp
för mer information.
Svar
Som Jinzai påpekade kan fjärrmappen ägas av roten. I mitt fall ändrade någon (eller något) ägaren till användarens hemmapp att rota. Så när jag försökte skicka en fil till en fjärrserver uppstod ett fel som nekades tillstånd.
Du kan kontrollera ägaren till mappen med kommandot ls -l
:
drwxr-xr-x 5 root root 4096 Oct 21 08:16 user2
I exemplet ovan ägs mappen user2 av root. Du kan ändra ägaren så här:
chown user2:user2 user2
Det finns också ett snabbare sätt att kontrollera om servern blockerar en fil genom att scp eller inte. Försök att skapa en fil i målmappen, till exempel med touch test_file
. Om du inte kunde skapa en fil i mappen kan du inte skicka filen här på distans av samma användare.
Svar
Tillåtelse nekad innebär att du inte är roten till servern. Du har bara ett konto där. Så i så fall måste du göra detta:
sudo scp -r /path2yourFolder/ username@server_Ip:/home/username
Detta kopieras till din hemkatalog på servern.
Detta fungerar också :
scp -r /path2yourFolder/ username@server_Ip:~/
Svar
Amazon Linux AMI
Se till att du måste ställa in den absoluta servervägen från home i nuvarande fall:
scp file.txt SSH-ALIAS:/home/YOUR_USER/
Svar
Installera ett Windows-verktyg” mRemoteG ”från www.mremoteng.org/
Skapa din SSH-anslutning till önskad ruta.
Klicka på menyn ”Överför fil”.
Det går att överföra filer enkelt från Windows till Linux.
tack.
Svar
Samma behörighet gäller på båda sidor om scp. Du får detta fel om användaren saknar behörighet att skriva till destinationen. Symtomen verkar innebära källan, men i mitt fall skapades destinationen av root och saknade skrivbehörighet för det avsedda användarkontot.
Svar
I mitt fall försökte jag också ge alla behörigheter med -R till mappen men fick fortfarande felet om behörighet.
Jag var tvungen att ta bort ”/” innan sökvägen till målservern och mappen. Anledningen är att Nedladdningar är den första mappen jag kan lista ut efter att jag ssh till servern, till exempel: ssh [email protected]
Detta fungerar:
sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip [email protected]: Nedladdningar
Detta fungerade inte:
sudo scp -rp /Users/macintosh.vn/Downloads /bbhs_20190301.zip [email protected]: / Nedladdningar
Svar
Enkel fix. Se till att du är rot. SCP till fjärrkontrollen och den kommer att be dig om maskinens root-lösenord. Bara hade detta problem som var lösningen. Du rotar dem root.
Kommentarer
- Eftersom root-inloggningar normalt är inaktiverade i sshd_config , bör du visa OP hur för att ändra detta (även om det ’ inte rekommenderas).
- Varför insisterar du på att använda root för att kopiera en (någon) fil? Lägg också märke till det accepterade svaret från ~ 7 år sedan …
Svar
innan du använder scp-kommando, gör se till att du ger behörighet att läsa, skriva och utföra till alla utanför. ”chmod 777 filnamn”
Kommentarer
- du kan kopiera filer som inte är 777
scp My_file.txt user_id@server:
Den kopieras till användarens hemmapp.