Katselin ympärilleni muita kysymyksiä täällä ja erilaisia ”scp-käyttö” -oppaita Internet, mutta en voi selvittää, mikä vikaa.
Käytän Linux Mintia ja yritän selvittää, miten scp toimii.
Olen tiedosto tiedosto.ext (tietokoneellani) hakemistossa / home / name / dir /
Yhdistän etäkone, joka käyttää ssh , kuten:
ssh -p 2222 username@domain
se pyytää minulta salasanaa ja komentotulkki näyttää:
username@domain ~ $
nyt, jos annan komennon (ennen ssh: n suorittamista olin paikallisessa hakemistossa / home / name / dir ):
scp -r -P 2222 file.ext username@domain
lähtö on:
cp: cannot stat ‘file.ext’: No such file or directory
Sama tulos, jos kirjoitan tiedoston.ext sijaan koko polun.
scp -r -P 2222 /home/name/dir/file.ext username@domain
Palvelimen järjestelmänvalvoja kertoi myös, että lähetän tiedoston etäkotihakemistooni (juuren sijaan), kuten:
scp -r -P 2222 file.ext username@domain:~/
mutta kun teen sen ja painan ”Enter”, mitään ei tapahdu, ikään kuin kuori odottaisi lisäsyöttöä.
Yhteenveto ongelmistani:
- cp: ei tällaista tiedostoa tai hakemistoa
- kuori ”jumissa” ~ /
Onko ehdotuksia?
Kommentit
Vastaa
Sinun on suoritettava scp
-komento paikallisesta koneesta, ei kaukosäätimestä. Et tarvitse lainkaan ssh
:
dragonmnl@local $ scp -P 2222 file.ext username@domain:~/
Et myöskään tarvitse -r
:
-r Recursively copy entire directories.
Jos olet jo kirjautunut etäkoneeseen ja haluat kopioida paikalliselta, sinun on tehtävä varmista, että paikalliseen koneeseesi pääsee Internetin kautta ja että ssh
on määritetty. En usko, että olet tämän jälkeen, mutta jos se on, suorita tämä kauko-ohjaimesta:
username@domain $ scp dragonmnl@local:/path/to/file.ext ~/
Kommentit
- kiitos. ongelmana oli, että yritin suorittaa scp: tä ssh-istunnossa. Nyt se toimii!
Vastaa
Tarjoan kaksi tapaa ladata / ladata tiedosto etä- ja paikallisen koneen välillä (käytän Mac airia):
Tässä tapauksessa haluan ylös / alas 11.jpeg
paikallisen ja etäyhteyden välillä:
-
Kopioi palvelun tiedostot paikalliseen kansioon: Sinun on oltava paikallisessa bash-päätteessä tämän komennon suorittamiseksi, etkä kun olet ssh: ssä!
scp username@domain:/home/xxx/xxx/11.jpeg /Users/username/Desktop/
kopioi tiedostot paikalliseen hakemistoon etäpalvelu: myös sinun on oltava paikallisessa bash-päätteessä
scp /Users/username/Desktop/11.jpeg username@domain:/home/xxx/xxx
-
Saman tarkoituksen saavuttamiseksi , kun kirjaudut sisään SSH: hen , sinun on ensin asetettava Järjestelmäasetukset > jakamalla > etälokia > kaikkiin käyttäjiin (en ole varma sinun on määritettävä ” kaikille käyttäjille ”, mutta se toimii tässä tilanteessa) ”Mac kertoo sinulle ” Voit kirjautua tälle tietokoneelle etänä kirjoittamalla:
ssh username@xxxxxx, then type in the command below: scp username@domain:/home/xxx/xxx/11.jpeg username@xxxxxx:/Users/username/Desktop/**
Tämä yllä oleva komento on tarkoitettu tiedoston lataamiseen kaukosäätimestä paikalliseen, kun kirjaudut sisään ssh: ään, muuta vain kahta polkua, kun haluat lähettää tiedoston.
kommentit
- Lopuksi katson, että Filezilla on luultavasti mukavin päivittäisessä työssä ~~
Vastaa
Käytä komentoa scp
Jos haluat siirtää kansion, Vain zip
se ensin, voimme unzip
sen myöhemmin.
Suorita tämä tietokoneellasi:
$ scp your_path_to_the_file/the_file [email protected]:~/
Tässä root
on tilisi ja 10.145.198.100
on etäpalvelimen IP-osoite. Kopioimme the_file
kauko-ohjaimen ~/
-kansioon.
Pura tiedosto:
$ unzip the_zip_file.zip -d destination_folder
kommentit
- miksi
root
edes SSH-yhteys etäkoneeseen? Se ’ on melko epävarma. Parempi käyttää tavallista käyttöä ja sittensudo
tehdä mikä tahansa juuren tehtävä tällä koneella.
Vastaa
Jos suoritat tätä scp-komentoa etäkoneella, se etsii file.ext
”paikallisena” tiedostona, ts. div id = ”3fc9268a4d”>
etäkoneessa.
Jos haluat kopioida tiedoston etälaitteesta paikalliseen, käytä scp -P 2222 username@domain:dir/file.ext localdir
(olettaen, että file.ext
on etätietokoneen ~/dir
-kohdassa, kuten esimerkissä) . Jos suoritat scp
etäkoneella, käännä ”local” ja ”remote” taaksepäin.
Kommentit
- OP haluaa kopioida paikallisesta kauko-ohjaimeen, katso OP ’ -otsikko.
- Hups, luulen, että sinä ’ on oikeassa. Mutta hän ’ ilmeisesti tekee sen taaksepäin …
Vastaa
Vain pieni panos, ehkä se voi auttaa minun kaltaisiai aloittelijoita: polku etähakemistoon tulisi kirjoittaa seuraavasti: username@domain:~/remote_directory
Haluan tässä korostaa, että meidän on aina lisättävä, että :~/
Vastaa
Ratkaisu tiedostojen kopioimiseksi Linux-työasemasta Linux-palvelimeen
-
Tarkista, toimiiko
sshd
palvelimellasi:ps aux | grep sshd
-
Jos ei, asenna
OpenSSH
käyttämälläsudo apt-get install openssh-server openssh-client
https://www.tecmint.com/install-openssh-server-in-linux/ -
Käynnistä palvelimesi uudelleen ja varmista, että
sshd
on käytössäps aux | grep sshd
-
Tarvittaessa voit määrittää
/etc/ssh/sshd_config
-tiedoston, mutta sitä ei tarvita yksinkertaisissa määrityksissä -
varmista, että th e-portit ovat auki käyttämällä
netcat
:nc -v -z 127.0.0.1 22
-
Tiedostojen kopioiminen
Linux
asiakasLinux
-asiakas käyttää scp: tä seuraavastiscp ~/filename.md [email protected]:~/folder/filename.md
-
Varmista, että tiedosto on kopioitu, käyttämällä
ssh [email protected]
ja antamalla salasanasi.
Ratkaisu tiedostojen kopioimiseksi Linux-työasemasta Windows
-
SSH: n suorittamiseen on useita asiakkaita palvelimet Windowsissa, kuten:
-
Asenna jokin yllä olevista palvelimista ja varmista, että portti 22 on auki käyttämällä
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=22
netsh 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=22
netsh advfirewall set allprofiles state off
-
Näiden palvelimien vertailut:
Bitvise SSH -palvelin
-
Tarjoaa melkein lähellä alkuperäistä
cmd
-kehotetta,powershell
-kehotetta, automaattista täydennystä -
Tarjoaa lisäominaisuuksia räätälöintiin, jos tarvitset edistyneempää käyttöä.
-
Käyttäjien räätälöinti yksinkertaisia tarpeita varten on 0. Aloitin siinä 2 minuutin kuluessa vietettyäni paljon aikaa yritetään saada
MobaSSH
jaOpenSSH
toimimaan. -
Tiedostojen kopioiminen scp: llä käyttö:
scp ~/filename.md [email protected]:/C/Users/username/filename.md
-
Ilmainen henkilökohtaiseen käyttöön, 99 dollaria ammattikäyttöön. Niin monien ominaisuuksien ja suuren integraation takia hinta on hintansa arvoinen.
MobaSSH:
-
tarjoaa Linuxin kuori Windowsissa, jossa yksinkertaiset Linux-komennot, kuten
ls
,cp
,find
jne., työ, samanlainen kuinMINGW64
-
voit käyttää
cmd
japowershell
suoraan kirjoittamallacmd
taipowershell
-
Unicode-tuki on heikko. Koodaus ei ole oikein. Jos esimerkiksi yrität käynnistää
Python
-tulkin, se kaatuu. Sinun on muutettava koodaus manuaalisesti käyttämällä ( https://stackoverflow.com/a/12834315/4752883 ):chcp 65001
set PYTHONIOENCONDING=utf-8
ja käynnistä sitten Python-kehote -
MobaSSH: n hienoa on, että sillä on hyvin yksinkertainen käyttöliittymä ja
scp
jassh
ja integroitu hyvin. Joten toimii yksinkertaisissa käyttötapauksissa. -
Tiedostojen kopioiminen Linux-työasemasta Windows-palvelimeen, jossa on
MobaSSH
: käytäscp ~/filename.md [email protected]:/cygdrive/c/Users/username/filename.md
Tämä johtuu siitä, ettäMobaSSH
perustuu Cygwiniin ja sen asemat yhdistetään samalla tavallacygwin
– s-asemat on yhdistetty.
Käytä Microsoftin virtuaalikoneita, joissa OpenSSHv6.7 on asennettu osoitteesta https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ , OpenSSHv6.7 on jo asennettu.
-
Se on erittäin buginen, ja sinun on mukautettava sitä voimakkaasti.
-
Komennon loppuun saattaminen ei toimi
-
Se jättää tyhjät tilat, kun siirrät kohdistinta päätelaitteessa
-
Python ei toimi
-
OpenSSH: n uudemmat versiot ovat saattaneet olla sitä parantaneet. Lisäksi MS näyttää tarjoavan OpenSSH: n saataville osoitteeseen ” Valinnaiset ominaisuudet ” https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
-
Vastaa
Jos satut käyttämään OSX: ää …
Kun yritin suorittaa sen käyttäjätunnuksella @ local: / file_directory …
Sain seuraavan virheen:
ssh: local: node name or service name not known
Ratkaisu
Mac-tietokoneellani minun piti tehdä seuraavat asetukset paikallisen ssh
-asetusten määrittämiseksi:
Järjestelmäasetukset -> Internet & Verkko -> Jakaminen -> KÄYTÖSSÄ Etäkirjautuminen
Tämän jälkeen annettiin käyttäjänimi @ ip-osoite.
Vastaus
Minulla oli sama ongelma tänään MAC: ssä.
Kirjoita seuraava komento:
scp /local-file-path/ /-remote-location-path/
localuser@machineA: ssh -p 2222 username@domain
(ilmaisee, että käytät ssh-komentoa koneen A lokalisoijana)scp
, kaukosäätimen puolella on aina oltava kaksoispiste (esim.remotehost:/tmp
), muuten se vain tekee tavallisen kopion (scp /tmp/foo.txt example.com
kopioi/tmp/foo.txt
paikalliseen tiedostoonexample.com
)-r
-lippu, koska sitä ei tarvita yksittäisten tiedostojen kopiointiin (sitä ’ käytetään rekursiivisesti hakemistojen kopioimiseen)