Jeg prøver at overføre filer fra fjerncomputer ved hjælp af ssh
til min computer:
scp My_file.txt user_id@server:/Home
Dette skal placere My_file.txt i hjemmemappen på min egen computer, ikke? Jeg får
scp / Home: tilladelse nægtet
Også når jeg prøver: ...@server:/Desktop
for at kopiere filerne fra fjerncomputeren til mit skrivebord.
Hvad laver jeg forkert?
Kommentarer
Svar
Dine kommandoer forsøger at placere det nye dokument til root (/
) på din maskine. Hvad du vil gøre er at overføre dem til din hjem -mappe (da du ikke har nogen tilladelse til at skrive til /
). Hvis stien til dit hjem er noget som /home/erez
prøv følgende:
scp My_file.txt user_id@server:/home/erez/
Du kan erstatte stien til din hjemmekatalog med genvejen ~/
, så følgende har samme effekt:
scp My_file.txt user_id@server:~/
Du kan endda forlade ud af stien helt på den fjerne side; dette betyder din hjemmekatalog.
scp My_file.txt user_id@server:
Det vil sige at hvis du vil kopiere filen til dit skrivebord, kan du overføre den til /home/erez/Desktop/
:
scp My_file.txt user_id@server:/home/erez/Desktop/
eller ved hjælp af genvejen:
scp My_file.txt user_id@server:~/Desktop/
eller ved hjælp af en relativ sti på den eksterne side, som fortolkes i forhold til dit hjemmekatalog:
scp My_file.txt user_id@server:Desktop/
Rediger:
Som @ ckhan allerede nævnt, skal du også bytte argumenterne, det skal være
scp FROM TO
Så hvis du vil kopiere filen My_file.txt
fra serveren user_id@server
til dit skrivebord skal du prøve følgende:
scp user_id@server:/path/to/My_file.txt ~/Desktop/
Hvis fil My_file.txt
er placeret i dit hjemmekatalog på serveren, du kan igen bruge genvejen:
scp user_id@server:~/My_file.txt ~/Desktop/
Kommentarer
- – Jeg ‘ har prøvet: ” ~ / til ‘ Hjem ‘ nu, og også ” ~ / Desktop /. Begge resulterede i: My_file.txt 100% 0 0.0 KB / s 00:00, og jeg kan ikke se filerne i mine mapper. Hvad laver jeg stadig forkert? Mange tak!
- På dit andet kommandoeksempel skal
~
beskyttes mod evaluering for at blive evalueret på den eksterne vært:\~
for eksempel. - For at takke dig, tilmeldte jeg mig hjemmesiden. Tak, du reddede min dag 🙂
Svar
Jeg kom her for “Overfør filer ved hjælp af scp: tilladelse nægtet “fordi jeg havde den samme fejl.
I mit tilfælde ville den fil, der blev downloadet med scp, have overskrevet en fil, der ejes af root, og jeg var ikke root. Kort sagt skal du kontrollere ejerskabet af den fil, der er overskrevet.
Kommentarer
- I dette tilfælde ‘ s fordi han ‘ forsøger at skrive til
/Home
og ikke er root, han har ikke ‘ t har skriveadgang uden for~/
- Du hjælper mig.
Svar
Hvad der fik “tilladelse nægtet” for mig, var at ændre på ejerskabet af mappen til root på fjernserveren: (Dette kan ske, når du sender en fil til en ikke-root-bruger, og biblioteket ejes af root! ) På den eksterne maskine (kopiering af dest.):
sudo chown (your username) (remote folder)
Også for at være sikker skal du aktivere alle tilladelser i fjernmappen: (Ikke altid nødvendigt):
sudo chmod 777 (remote folder)
Svar
dette ser ud til at være som tilladelsesproblem
Filen har muligvis ikke læsetilladelser, da den leveres til destinationsserveren som kildekonto.
du skal sikre dig, at filen ved kilden har krævet tilladelse, især læsetilladelse
-rw-r – r–
chmod 744
scp derefter filen til destinationen. Dette løses
Kommentarer
-
-rw-r--r--
er 644, ikke 744. Indstilling af eksekverbar tilladelse på en fil, der faktisk ikke er eksekverbar, kan forårsage problemer.
Svar
Du har argumenterne for scp
omvendt.Det er kilden først, derefter destinationen som cp
. man scp
for flere detaljer.
Svar
Som Jinzai påpegede, kan den eksterne mappe ejes af roden. I mit tilfælde ændrede nogen (eller noget) ejeren af brugerens hjemmemappe at rodfæste. Så da jeg forsøgte at sende en fil til en ekstern server, opstod der en fejl nægtet tilladelse.
Du kan kontrollere ejeren af mappen med kommandoen ls -l
:
drwxr-xr-x 5 root root 4096 Oct 21 08:16 user2
I eksemplet ovenfor ejes mappen user2 af root. Du kan ændre ejeren sådan:
chown user2:user2 user2
Der er også en hurtigere måde at kontrollere, om serveren blokerer en fil ved at scp eller ej. Prøv at oprette en fil i målmappen, f.eks. Med touch test_file
. Hvis du ikke kunne oprette en fil i mappen, vil du ikke kunne sende filen her eksternt af den samme bruger.
Svar
Tilladelse nægtet betyder, at du ikke er serverens rod. Du har bare en konto der. Så i så fald skal du gøre dette:
sudo scp -r /path2yourFolder/ username@server_Ip:/home/username
Dette kopieres til dit hjemmekatalog på serveren.
Dette fungerer også :
scp -r /path2yourFolder/ username@server_Ip:~/
Svar
Amazon Linux AMI
Sørg for, at du skal indstille den absolutte serversti fra home i det aktuelle tilfælde:
scp file.txt SSH-ALIAS:/home/YOUR_USER/
Svar
Installer et Windows-værktøj” mRemoteG “fra www.mremoteng.org/
Opret din SSH-forbindelse til det ønskede felt.
Klik på menuen “Overfør fil”.
Det gør det muligt at overføre fil nemt fra Windows til Linux.
tak.
Svar
De samme tilladelser gælder på begge sider af scp. Du får denne fejl, hvis brugeren mangler tilladelse til at skrive til destinationen. Symptomerne ser ud til at implicere kilden, men i mit tilfælde blev destinationen oprettet med root og manglede skrivetilladelse til den tilsigtede brugerkonto.
Svar
I mit tilfælde forsøgte jeg også at give al tilladelse med -R til mappen, men fik stadig fejlen om tilladelse.
Jeg var nødt til at fjerne “/” før stien til målserveren og mappen. Årsagen er, at Downloads er den første mappe, jeg kan liste ud, efter at jeg ssh til serveren, for eksempel: ssh [email protected]
Dette fungerer:
sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip [email protected]: Downloads
Dette fungerede ikke:
sudo scp -rp /Users/macintosh.vn/Downloads /bbhs_20190301.zip [email protected]: / Downloads
Svar
Nem løsning. Sørg for, at DU er rod. SCP til fjernbetjeningen, og den vil bede dig om maskinens rodadgangskode. Bare havde dette problem, der var løsningen. Du rodfæster dem rod.
Kommentarer
- Da rodlogins normalt er deaktiveret i sshd_config , skal du vise OP hvordan for at ændre dette (selvom det ‘ ikke anbefales).
- Hvorfor insisterer du på at bruge root til at kopiere en (hvilken som helst) fil? Bemærk også det accepterede svar fra ~ 7 år siden …
Svar
inden du bruger scp-kommando, lav Sørg for, at du giver tilladelser til at læse, skrive og udføre til alle udenfor. “chmod 777 filnavn”
Kommentarer
- du kan kopiere fil, der ikke er 777
scp My_file.txt user_id@server:
Den kopieres til brugerens hjemmemappe.