Az scp segítségével fájlokat helyezhet át az X helyi könyvtárból az Y távoli könyvtárba

Körülnéztem más kérdéseket itt és a “scp use” oktatóanyagok között Internet, de nem tudom rendezni, hogy mi a baj.

Én a Linux Mint-et használom, és megpróbálom kitalálni, hogyan scp működik.

Van egy fájlom fájl.ext (a számítógépemen) a / home / name / dir /

könyvtárban távoli gép, amely ssh -t használ, például:

ssh -p 2222 username@domain 

megkérdezi a jelszót, és a shell megjeleníti:

username@domain ~ $ 

most, ha kiadom a parancsot (az ssh futtatása előtt a / home / name / dir ):

scp -r -P 2222 file.ext username@domain 

kimenet a következő:

cp: cannot stat ‘file.ext’: No such file or directory 

Ugyanez az eredmény, ha a file.ext helyett a teljes elérési utat írom.

scp -r -P 2222 /home/name/dir/file.ext username@domain 

A kiszolgáló rendszergazdája azt is mondta, hogy feltöltöm a fájlt a távoli otthoni könyvtáramba (root helyett), például:

scp -r -P 2222 file.ext username@domain:~/ 

de amikor megteszem és megnyomom az “Enter” -t, semmi sem történik, mintha a shell további bevitelre várna.

A problémáim összefoglalása:

  • cp: nincs ilyen fájl vagy könyvtár
  • héj “beragadt” a ~ /
  • ul fájlra >

    Van valami javaslata?

    Megjegyzések

    • ez ‘ kissé nem világos, hogy a problémája-e csak azzal kapcsolatos, hogy rossz gépen van … kérem, hogy minden parancsot előtaggal írjon be a futó gépen? például. localuser@machineA: ssh -p 2222 username@domain (annak jelzésére, hogy az ssh parancsot lokalizálóként futtatja az A gépen)
    • a scp használatakor a A távoli oldalon mindig tartalmaznia kell a kettőspontot (pl. remotehost:/tmp), különben csak egy közönséges másolatot készít (scp /tmp/foo.txt example.com a /tmp/foo.txt fájlt egy helyi fájlba másolja example.com)
    • eltávolítja a -r jelző, mivel erre nincs szükség egyetlen fájl másolásához (‘ szokott rekurzívan könyvtárakat másolni)
    • Kiadja az scp parancsot az sshe munkameneten belül ? Van értelme, ha a helyi gépen tartózkodik.

Válasz

Futtatnia kell a scp parancs a helyi gépről, nem a távvezérlőről. Egyáltalán nem kell a ssh:

dragonmnl@local $ scp -P 2222 file.ext username@domain:~/ 

Nem kell a -r:

 -r Recursively copy entire directories. 

Ha már be van jelentkezve a távoli gépbe, és másolni szeretne a helyi, akkor ezt meg kell tennie: győződjön meg arról, hogy a helyi gép az interneten keresztül elérhető és ssh be van állítva. Nem hiszem, hogy erre vágysz, de ha mégis, csak futtasd ezt a távvezérlőről:

username@domain $ scp dragonmnl@local:/path/to/file.ext ~/ 

Megjegyzések

  • köszi. A probléma az volt, hogy megpróbáltam futtatni az scp-t az ssh munkameneten belül. Most már működik!

Válasz

Kétféle módszert kínálok a fájlok fel / le betöltésére a távoli és a helyi gép között (Mac air-t használok):

Ebben az esetben fel / le szeretnék 11.jpeg a helyi és a távoli között:

  1. A szervizen lévő fájlok másolása a helyi könyvtárba: A parancs végrehajtásához a helyi bash terminálon kell lennie, nem pedig akkor, amikor az ssh-ben van!

    scp username@domain:/home/xxx/xxx/11.jpeg /Users/username/Desktop/ 

    fájlok másolása a helyi távoli szolgáltatás: Önnek is a helyi bash terminálban kell lennie

    scp /Users/username/Desktop/11.jpeg username@domain:/home/xxx/xxx 
  2. Ugyanazon szándék eléréséhez , amikor az SSH-ba jelentkezik , először be kell állítania a Rendszerbeállítások > > távoli napló > összes felhasználó megosztása (nem vagyok biztos benne, hogy be kell állítania a ” összes felhasználót “, de ebben a helyzetben működik) “a Mac meg fogja mondani ” A távoli bejelentkezéshez írja be a következőt:

    ssh username@xxxxxx, then type in the command below: scp username@domain:/home/xxx/xxx/11.jpeg username@xxxxxx:/Users/username/Desktop/** 

Ez a fenti parancs fájl letöltésére szolgál. távoli helyett helyi, amikor belép az ssh-be. Csak állítsa be a két útvonalat, ha fájlt szeretne feltölteni.

Megjegyzések

  • Végül úgy látom, hogy a Filezilla a legkényelmesebb a mindennapi munkában ~~

Válasz

Használja a scp parancsot

Ha mappát szeretne átvinni, csak zip először, később unzip megtehetjük.

Számítógépén futtassa ezt:

$ scp your_path_to_the_file/the_file [email protected]:~/ 

Itt root az Ön fiókja, a 10.145.198.100 pedig a a távoli szerver IP-címe. A the_file fájlt átmásoljuk a távoli ~/ mappába.

Csomagolja ki a fájlt:

$ unzip the_zip_file.zip -d destination_folder 

megjegyzések

  • Miért lenne root még SSH hozzáféréssel is rendelkezik a távoli gépen? Ez ‘ elég bizonytalan. Jobb, ha egy közönséges használatot használunk, majd sudo bármilyen gyökér elvégzéséhez az adott gépen.

Válasz

Ha ezt az scp parancsot futtatja a távoli gépen, akkor a file.ext fájlt “helyi” fájlként keresi, azaz a távoli gépen.

Ha egy fájlt a távoli gépről a helyi gépre szeretne másolni, használja a div id = “1207263292”>

(feltételezve, hogy afile.exta távoli számítógép~/dir-jében van, mint az Ön példájában) . Ha ascpparancsot futtatja a távoli gépen, fordítsa meg a “local” és a “remote” parancsot.

Megjegyzések

  • Az OP azt akarja, hogy helyi másolatról másoljon, lásd az OP ‘ s címet.
  • Hoppá, gondolom, ön ‘ igaza van. De ő ‘ láthatóan visszafelé csinálja …

Válasz

Csak egy kis hozzájárulás, talán segíthet a hozzám hasonló kezdőknek: a távoli könyvtár elérési útját így kell írni: username@domain:~/remote_directory

Amit itt szeretnék kiemelni, az az, hogy mindig hozzá kell tennünk, hogy :~/

Válasz

Megoldás fájlok Linux kliensről Linux szerverre másolására

  1. Ellenőrizze, hogy az sshd fut-e a szerveren: ps aux | grep sshd

  2. Ha nem, telepítse a OpenSSH alkalmazást a sudo apt-get install openssh-server openssh-client https://www.tecmint.com/install-openssh-server-in-linux/

  3. Indítsa újra a szervert, és ellenőrizze, hogy az sshd fut-e a

  4. Ha szükséges konfigurálhatja a /etc/ssh/sshd_config fájlt, de az egyszerű konfigurációkhoz nem szükséges

  5. ellenőrizze, hogy th A portok a netcat használatával vannak megnyitva: nc -v -z 127.0.0.1 22

  6. Fájlok másolásához div id = “3474e7d361”>

kliens egy Linux klienshez az scp használatával az alábbiak szerint scp ~/filename.md [email protected]:~/folder/filename.md

  • A fájl másolásának ellenőrzéséhez használja a következőt: ssh [email protected], és adja meg jelszavát.

  • Megoldás fájlok Linux kliensről másolására Windows

    1. Az SSH futtatásához több kliens is létezik szerverek Windows rendszeren, például:

    2. Telepítse a fenti kiszolgálók egyikét, és ellenőrizze, hogy a 22. port meg van-e nyitva a

      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. Ezeknek a szervereknek az összehasonlítása:

      Bitvise SSH szerver

      1. Szinte közel a natív cmd prompthoz, powershell prompthoz, automatikus kiegészítéshez

      2. További képességeket biztosít a testreszabáshoz, ha speciális használatra van szüksége.

      3. A felhasználói testreszabás egyszerű igények esetén 0. 2 percen belül elkezdtem, sok idő után. MobaSSH és OpenSSH működésbe hozása.

      4. Fájlok másolása scp használatával felhasználás: scp ~/filename.md [email protected]:/C/Users/username/filename.md

      5. Ingyenes személyes használatra, 99 USD szakmai használatra. A sok funkció és a nagyszerű integráció miatt az ár megéri a pénzét.

      MobaSSH:

      1. Linuxot biztosít shell Windows rendszeren, ahol egyszerű Linux parancsok, például ls, cp, find stb., work, hasonló a MINGW64

      2. fájlhoz, cmd és powershell közvetlenül a cmd vagy powershell

      3. Az Unicode támogatás gyenge. A kódolás nem megfelelő. Például, ha megpróbálja elindítani az Python tolmácsot, összeomlik. A kódolást manuálisan kell módosítania a ( https://stackoverflow.com/a/12834315/4752883 ) használatával: chcp 65001 set PYTHONIOENCONDING=utf-8, majd indítsa el a Python parancssort

      4. A MobaSSH nagyszerű tulajdonsága, hogy nagyon egyszerű felhasználói felülettel rendelkezik, és scp és ssh és jól integrálódtak. Így működik ez egyszerű használat esetén is

      5. Fájlok másolása Linux kliensről egy MobaSSH futtató Windows szerverre: használja a scp ~/filename.md [email protected]:/cygdrive/c/Users/username/filename.md Ennek oka, hogy az MobaSSH a Cygwin-re épül, és meghajtói ugyanúgy vannak leképezve cygwin – s meghajtók leképezve vannak.

      Használja a Microsoft virtuális gépeit, ha az https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ , az OpenSSHv6.7 már telepítve van.

      1. Nagyon hibás, ezért erősen testre kell szabnia.

      2. A parancs végrehajtása nem működik

      3. Üres helyeket hagy, amikor a kurzort a terminálon mozgatja

      4. A Python nem működik

      5. Lehetséges, hogy az OpenSSH későbbi verziói javítottak rajta. Továbbá úgy tűnik, hogy az MS elérhetővé teszi az OpenSSH-t a Opcionális szolgáltatások ” https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/

    Válasz

    Ha véletlenül OSX-en van …

    Amikor megpróbáltam futtatni @ local: / file_directory felhasználónévvel …

    A következő hibát kaptam:

    ssh: local: node name or service name not known 

    Megoldás

    Mac gépemen a következőket kellett elvégeznem a helyi ssh beállításához:

    Rendszerbeállítások -> Internet & Hálózat -> Megosztás -> ENABLE Távoli bejelentkezés

    Ez megadta a @ felhasználónév @ ip címet.

    Válasz

    Ugyanez a probléma volt ma a MAC-on.

    Írja be a következő parancsot:

    scp /local-file-path/ /-remote-location-path/ 

    Vélemény, hozzászólás?

    Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük