Jeg kiggede rundt på andre spørgsmål her og på forskellige “scp-brug” -studier om Internettet, men jeg kan ikke finde ud af, hvad der er forkert.
Jeg bruger Linux Mint, og jeg prøver at finde ud af, hvordan scp fungerer.
Jeg har en fil file.ext (på min computer) i biblioteket / home / name / dir /
Jeg opretter forbindelse til en fjernmaskine, der bruger ssh , som:
ssh -p 2222 username@domain 
det spørger mig adgangskoden, og skallen viser:
username@domain ~ $ 
nu, hvis jeg udsteder kommandoen (før jeg kørte ssh, var jeg i den lokale mappe / home / name / dir ):
scp -r -P 2222 file.ext username@domain 
output er:
cp: cannot stat ‘file.ext’: No such file or directory 
Samme resultat, hvis jeg i stedet for file.ext skriver den komplette sti
scp -r -P 2222 /home/name/dir/file.ext username@domain 
Også serveradministratoren fortalte mig, at jeg skal uploade filen til min eksterne hjemmekatalog (i stedet for root), som:
scp -r -P 2222 file.ext username@domain:~/ 
men når jeg gør det og trykker på “Enter” sker der intet, som hvis skallen ventede på yderligere input.
Oversigt over mine problemer:
- cp: ingen sådan fil eller katalog
 - shell “fast” på ~ /
 
Eventuelle forslag?
Kommentarer
Svar
 Du skal køre scp kommando fra den lokale maskine, ikke på fjernbetjeningen. Du behøver slet ikke ssh: 
dragonmnl@local $ scp -P 2222 file.ext username@domain:~/ 
 Du har heller ikke brug for -r: 
 -r Recursively copy entire directories. 
 Hvis du allerede er logget ind på fjernmaskinen og vil kopiere fra din lokale, skal du oprette Sørg for, at din lokale maskine er tilgængelig via internettet og har indstillet ssh. Jeg tror ikke, det er, hvad du leder efter, men hvis det er, skal du bare køre dette fra fjernbetjeningen: 
username@domain $ scp dragonmnl@local:/path/to/file.ext ~/ 
Kommentarer
- tak. problemet var, at jeg prøvede at køre scp inde i ssh-session. nu fungerer det!
 
Svar
Jeg giver to metoder til op- / nedindlæsningsfil mellem fjern- og lokal maskine (jeg bruger Mac air):
 I dette tilfælde vil jeg op / ned 11.jpeg mellem lokal og fjernbetjening: 
- 
Kopier filer til tjeneste til lokal dir: Du skal være i lokal bash-terminal for at udføre denne kommando, ikke når du er i ssh!
scp username@domain:/home/xxx/xxx/11.jpeg /Users/username/Desktop/kopier filer i lokal dir til fjernservice: også skal du være i lokal bash-terminal
scp /Users/username/Desktop/11.jpeg username@domain:/home/xxx/xxx - 
For at opnå den samme hensigt når du logger på SSH , skal du først indstille “ Systemindstillinger > deling > fjernlog log ind > alle brugere (jeg er ikke sikker på om du skal indstille for ” alle brugere “, men det fungerer i denne situation) ”Mac vil fortælle dig ” For at logge på denne computer eksternt skal du skrive:
ssh username@xxxxxx, then type in the command below: scp username@domain:/home/xxx/xxx/11.jpeg username@xxxxxx:/Users/username/Desktop/** 
Denne kommando ovenfor er til download af fil fra fjernbetjening til lokal, når du logger ind på ssh, skal du bare ændre de to stier, når du vil uploade filen.
Kommentarer
- Endelig finder jeg Filezilla sandsynligvis den mest bekvemme i det daglige arbejde ~ ~
 
Svar
 Brug kommandoen scp 
 Hvis du vil overføre en mappe, bare zip det først, vi kan unzip det senere. 
Fra din computer skal du køre dette:
$ scp your_path_to_the_file/the_file [email protected]:~/ 
 Her er root din konto, og 10.145.198.100 er fjernserverens IP-adresse. Vi kopierer the_file til ~/ -mappen på fjernbetjeningen. 
Pak zip-fil ud:
$ unzip the_zip_file.zip -d destination_folder 
Kommentarer
-  Hvorfor ville 
roothar du endda SSH-adgang på den eksterne maskine? At ‘ er ret usikker. Bedre at bruge en almindelig brug og dereftersudofor at gøre hvad root skal gøre på den maskine. 
Svar
 Hvis du kører denne scp-kommando på den eksterne maskine, søger den file.ext som en “lokal” fil, dvs.  på fjernmaskinen.  
 For at kopiere en fil fra den eksterne maskine til den lokale skal du bruge scp -P 2222 username@domain:dir/file.ext localdir (forudsat at file.ext er i ~/dir på fjerncomputeren, som i dit eksempel) . Hvis du kører scp på fjernmaskinen, skal du vende “lokal” og “fjernbetjening”. 
Kommentarer
- OP vil kopiere fra lokal til fjernbetjening, se OP ‘ s titel.
 - Ups, jeg gætter dig ‘ har ret. Men han ‘ gør det tilsyneladende baglæns …
 
Svar
 Bare et lille bidrag, måske kan det hjælpe begyndere som mig: stien til fjernmappen skal skrives således: username@domain:~/remote_directory 
 Hvad jeg vil fremhæve her er, at vi altid skal tilføje, at :~/ 
Svar
Løsning til kopiering af filer fra Linux-klient til Linux-server
- 
Kontroller, om
sshdkører på din server ved hjælp af:ps aux | grep sshd - 
Hvis ikke, skal du installere
OpenSSHved hjælp afsudo apt-get install openssh-server openssh-clienthttps://www.tecmint.com/install-openssh-server-in-linux/ - 
Genstart din server og kontroller, at
sshdkører ved hjælp afps aux | grep sshd - 
Hvis du har brug for det, kan du konfigurere din
/etc/ssh/sshd_config-fil, men det er ikke nødvendigt for enkle konfigurationer - 
kontrollere, at th e-porte er åbne ved hjælp af
netcat:nc -v -z 127.0.0.1 22 - 
Sådan kopieres filer fra en
Linuxklient til enLinuxklient bruger scp som følgerscp ~/filename.md [email protected]:~/folder/filename.md - 
For at bekræfte, at filen er kopieret, skal du bruge
ssh [email protected]og angive din adgangskode. 
Løsning til kopiering af filer fra Linux-klient til Windows
- 
Der er flere klienter til kørsel af SSH servere på Windows, såsom:
 - 
Installer en af ovenstående servere og sørg for at port 22 er åben ved hjælp af
netsh advfirewall firewall add rule name="SSH Port 22" dir=in action=allow protocol=UDP localport=22 netsh advfirewall firewall add rule name="SSH Port 22" dir=out action=allow protocol=UDP localport=22netsh advfirewall firewall add rule name="SSH Port 22" dir=in action=allow protocol=TCP localport=22 netsh advfirewall firewall add rule name="SSH Port 22" dir=out action=allow protocol=TCP localport=22netsh advfirewall set allprofiles state off - 
Sammenligninger af disse servere:
Bitvise SSH-server
- 
Giver næsten tæt på native
cmdprompt,powershellprompt, autofuldførelse - 
Giver yderligere muligheder for tilpasning, hvis du har brug for avanceret brug
 - 
Brugertilpasning til enkle behov er 0. Jeg kom i gang med det inden for 2 minutter efter at have brugt meget tid forsøger at få
MobaSSHogOpenSSHtil at fungere. - 
For at kopiere filer ved hjælp af scp brug:
scp ~/filename.md [email protected]:/C/Users/username/filename.md - 
Gratis til personlig brug, $ 99 til professionel brug. På grund af så mange funktioner og god integration er prisen værd at pengene.
 
MobaSSH:
- 
giver en Linux shell på Windows, hvor enkle Linux-kommandoer såsom
ls,cp,findosv., arbejde svarende tilMINGW64 - 
du kan få adgang til
cmdogpowershelldirekte ved at skrivecmdellerpowershell - 
Unicode-support er dårlig. Kodning er ikke korrekt. Hvis du f.eks. Prøver at starte
Pythonfortolker, går det ned. Du bliver nødt til at ændre kodningen manuelt ved hjælp af ( https://stackoverflow.com/a/12834315/4752883 ):chcp 65001set PYTHONIOENCONDING=utf-8og derefter starte Python-prompt - 
Det fantastiske ved MobaSSH er, at det har en meget enkel brugergrænseflade, og
scpogsshog integreret godt. Så fungerer det til simple brugssager - 
For at kopiere filer fra en Linux-klient til en Windows-server, der kører
MobaSSH: brugscp ~/filename.md [email protected]:/cygdrive/c/Users/username/filename.mdDette skyldes, atMobaSSHer baseret på Cygwin, og dens drev er kortlagt på samme mådecygwin– s drev er kortlagt. 
Brug VMer fra Microsoft med OpenSSHv6.7 installeret fra https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ , OpenSSHv6.7 er allerede installeret.
- 
Det er meget buggy, og du bliver nødt til at tilpasse det kraftigt.
 - 
Kommandofuldførelse fungerer ikke
 - 
Det efterlader tomme mellemrum, når du bevæger markøren på terminalen
 - 
Python fungerer ikke
 - 
Senere versioner af OpenSSH kan have forbedret det. Yderligere ser MS ud til at gøre OpenSSH tilgængelig via ” Ekstra funktioner ” https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
 
 - 
 
Svar
Hvis du tilfældigvis er på OSX …
Da jeg forsøgte at køre det med brugernavn @ local: / file_directory …
Jeg fik følgende fejl:
ssh: local: node name or service name not known 
Løsning
 På min Mac var jeg nødt til at gøre følgende for at konfigurere lokal ssh: 
Systemindstillinger -> Internet & Netværk -> Deling -> AKTIVER Fjernlogin
Dette gav derefter brugernavnet @ ip-adresse.
Svar
Jeg havde det samme problem i dag på MAC.
Skriv følgende kommando:
scp /local-file-path/ /-remote-location-path/ 
localuser@machineA: ssh -p 2222 username@domain(for at angive, at du kører kommandoen ssh som localuser på machineA)scp, fjern side skal altid indeholde tyktarmen (f.eks.remotehost:/tmp), ellers laver den bare en almindelig kopi (scp /tmp/foo.txt example.comkopierer/tmp/foo.txttil en lokal filexample.com)-rflag, da dette ikke er nødvendigt til kopiering af enkeltfiler (det ‘ bruges til rekursivt kopiering af mapper)