Käytä scp: tä siirtämään tiedosto paikallisesta hakemistosta X etähakemistoon Y

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

  • se ’ on hieman epäselvä, onko ongelmasi liittyy vain väärällä koneella olemiseen … voisitko etuliittää jokaisen komennon isännälle, jolla käytät? esimerkiksi. localuser@machineA: ssh -p 2222 username@domain (ilmaisee, että käytät ssh-komentoa koneen A lokalisoijana)
  • kun käytät 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 tiedostoon example.com)
  • poista -r -lippu, koska sitä ei tarvita yksittäisten tiedostojen kopiointiin (sitä ’ käytetään rekursiivisesti hakemistojen kopioimiseen)
  • Annatko scp-komennon sshe-istunnon sisällä ? Olisi järkevää, jos olet paikallisella koneella.

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ä:

  1. 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 
  2. 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 sitten sudo 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

  1. Tarkista, toimiiko sshd palvelimellasi: ps aux | grep sshd

  2. 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/

  3. Käynnistä palvelimesi uudelleen ja varmista, että sshd on käytössä ps aux | grep sshd

  4. Tarvittaessa voit määrittää /etc/ssh/sshd_config -tiedoston, mutta sitä ei tarvita yksinkertaisissa määrityksissä

  5. varmista, että th e-portit ovat auki käyttämällä netcat: nc -v -z 127.0.0.1 22

  6. Tiedostojen kopioiminen Linux asiakas Linux -asiakas käyttää scp: tä seuraavasti scp ~/filename.md [email protected]:~/folder/filename.md

  7. Varmista, että tiedosto on kopioitu, käyttämällä ssh [email protected] ja antamalla salasanasi.

Ratkaisu tiedostojen kopioimiseksi Linux-työasemasta Windows

  1. SSH: n suorittamiseen on useita asiakkaita palvelimet Windowsissa, kuten:

  2. 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 
  3. Näiden palvelimien vertailut:

    Bitvise SSH -palvelin

    1. Tarjoaa melkein lähellä alkuperäistä cmd -kehotetta, powershell -kehotetta, automaattista täydennystä

    2. Tarjoaa lisäominaisuuksia räätälöintiin, jos tarvitset edistyneempää käyttöä.

    3. 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 ja OpenSSH toimimaan.

    4. Tiedostojen kopioiminen scp: llä käyttö: scp ~/filename.md [email protected]:/C/Users/username/filename.md

    5. Ilmainen henkilökohtaiseen käyttöön, 99 dollaria ammattikäyttöön. Niin monien ominaisuuksien ja suuren integraation takia hinta on hintansa arvoinen.

    MobaSSH:

    1. tarjoaa Linuxin kuori Windowsissa, jossa yksinkertaiset Linux-komennot, kuten ls, cp, find jne., työ, samanlainen kuin MINGW64

    2. voit käyttää cmd ja powershell suoraan kirjoittamalla cmd tai powershell

    3. 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

    4. MobaSSH: n hienoa on, että sillä on hyvin yksinkertainen käyttöliittymä ja scp ja ssh ja integroitu hyvin. Joten toimii yksinkertaisissa käyttötapauksissa.

    5. 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 tavalla cygwin – 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.

    1. Se on erittäin buginen, ja sinun on mukautettava sitä voimakkaasti.

    2. Komennon loppuun saattaminen ei toimi

    3. Se jättää tyhjät tilat, kun siirrät kohdistinta päätelaitteessa

    4. Python ei toimi

    5. 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/ 

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *