Při přenosu souborů na vzdálený server Linux máte několik možností. Jednou z nejlepších metod je použití programu s názvem Secure Copy nebo SCP, který běží přes SSH pro rychlý přenos souborů přes vaši síť do vzdáleného systému. Tento tutoriál vám ukáže, jak bezpečně přenášet soubory v Linuxu pomocí SCP.
Konfigurace SSH
Na váš vzdálený server budete muset nainstalovat SSH server. Nejpopulárnější na Linuxu je OpenSSH server. Chcete-li jej nainstalovat, spusťte jeden z následujících příkazů:
# Server založený na Debianu/Ubuntu sudo apt install ssh # Fedora sudo dnf install openssh
V závislosti na vaší distribuci možná budete muset povolit SSH přes některé softwarové brány firewall. V Ubuntu tento problém neexistuje, ale v Fedora Budete také muset spustit následující příkazy:
sudo firewall-cmd --add-service=ssh --permanent sudo firewall-cmd --reload
Připojte se k systému přes SSH
Než se budete moci připojit přes SSH, musíte znát IP adresu vzdáleného serveru. Na grafických serverech se IP adresa objeví v apletu Síť v nastavení systému. Na většině serverů musíte použít příkaz ip v terminálu.
ip addr
Ve výstupu najděte řádek, který začíná inet v rámci ethX .و enpXsy v závislosti na tom, jak se vaše síťové rozhraní připojuje k systému. V mém případě ano 192.168.68.108.
testovat SSH připojení , přejděte na Zařízení Linux jiný a typ:
změna "uživatel" ىلى uživatelské jméno skutečný server.
Vstupte Heslo Tento účet a vy pracujete. Pokud dostanete otázku o "Autenticitu hostitele nelze prokázat." Stačí odpovědět s "Ano". Je to bezpečnostní kontrola navržená tak, aby se ujistila, že jste připojeni ke svému skutečnému serveru a nejedná se o podvod. Na klientském systému byste měli vidět stejnou výzvu jako při přímém přihlášení k serveru, což znamená, že vaše připojení bylo úspěšné. Měli byste také nakonfigurovat připojení SSH pro maximální zabezpečení nebo dokonce Nastavte dvoufaktorové ověřování , než přejdete k dalšímu kroku.
K přenosu souborů použijte SCP
Nyní, když jste otestovali připojení SSH, začněte kopírovat soubory mezi dvěma zařízeními. Bezpečné kopírování je dosaženo pomocí příkazu scp. Základní formát příkazu scp je:
scp /PATH/TO/FILE USER@IP-ADDRESS:PATH/TO/DESIRED/DESTINATION
Například ke zkopírování souboru "backup.tar.gz" Z místního počítače do složky "backup.tar.gz" v domovském adresáři uživatele "ramces" Na vzdáleném serveru s adresou IP 192.168.68.165 , použijte:
scp backup.tar.gz [chráněno e-mailem]:~/zálohy/
Podobně jako když se připojujete pomocí ssh, budete vyzváni k zadání hesla. Nebudete vyzváni k zadání uživatelského jména, jak je uvedeno v příkazu.
Můžete také použít zástupné znaky, jako jsou následující:
scp *.tar.gz [chráněno e-mailem]:~/zálohy/
Chcete-li zkopírovat soubor ze vzdáleného serveru na místní počítač, stačí obrátit parametry:
Scp [chráněno e-mailem]:~/backups/backup.tar.gz ./
Všimli jste si bodu na konci? To znamená "aktuální složka" , Stejně jako u cp standardní příkazy .و atd. Pokud chcete, můžete snadno vybrat jiný adresář.
scp -r [chráněno e-mailem]:~/backups/backups-from-server/
A to samé s divokými kartami:
Scp [chráněno e-mailem]:~/backups/*.txz ./
Chcete-li rekurzivně zkopírovat adresář na vzdálený server, použijte možnost -r:
scp -r zálohy/ [chráněno e-mailem]:~/zálohy/
Chcete-li zkopírovat duplicitní kopii adresáře ze vzdáleného serveru na místní počítač, použijte:
scp -r [chráněno e-mailem]:~/zálohy/ ./
Komprese přenosu souborů v SCP
Kromě základního kopírování je také možné upravovat chování SCP při těchto přenosech souborů. Můžete například použít značku -C Chcete-li komprimovat data, která SCP odesílá vzdáleným klientům:
scp -C backup.tar.gz [chráněno e-mailem]:/home/ramces/
Tato možnost funguje tak, že komprimuje každý datový paket při odesílání přes SCP. Jako takové to může být neuvěřitelně užitečné, pokud používáte připojení s omezenou šířkou pásma a chcete spolehlivě odeslat soubor na vzdálený server.
Podobně jako výše uvedené možnosti můžete také použít -C spolu se značkou -r Komprimujte soubory a přenášejte je rekurzivně na vzdálený počítač. Například následující příkaz zkomprimuje a obnoví soubor "backup.tar.gz" Z mého vzdáleného serveru:
scp-Cr [chráněno e-mailem]:/home/ramces/backups /home/ramces/
Optimalizujte přenos dat pomocí SCP
Z větší části se SCP snaží využít šifrovací algoritmus AES-128 pro všechny přenosy souborů. Existují však případy, kdy tento konkrétní algoritmus nebude vhodný pro soubory, které chcete přenést.
S tímto vědomím je možné dále zlepšovat a zabezpečovat SCP přímou změnou šifrovacího algoritmu pro konkrétní přenos. Chcete-li to provést, musíte použít značku -c následovaný kódem, který chcete použít.
Například následující příkaz přesune soubor "backup.tar.gz" na můj vzdálený server pomocí AES-256:
scp -c aes256-ctr ./backup.tar.gz [chráněno e-mailem]:/home/ramces/
Navíc vám dává možnost -c Uveďte také seznam šifer, které chcete použít k přenosu konkrétního souboru. Například následující příkaz používá obojí AES-192 و AES-256 při přenosu souboru "backup.tar.gz" Na můj vzdálený server:
scp -c aes192-ctr, aes256-ctr ./backup.tar.gz [chráněno e-mailem]:/home/ramces/
Omezte využití šířky pásma v SCP
Zatímco komprese paketů souborů vám může pomoci používat SCP ve špatných podmínkách sítě, může také omezit šířku pásma, kterou program používá během přenosu. To je užitečné v případech, kdy používáte omezené připojení a nechcete, aby SCP převzalo šířku pásma vaší sítě.
Chcete-li omezit efektivní šířku pásma programu, musíte použít tag -l následuje maximální požadovaná částka V kilobitech za sekundu (Kb/s). Například spuštění následujícího příkazu přesune soubor "backup.tar.gz" Na můj vzdálený server s efektivní šířkou pásma 1600 Kb/s:
scp -l 1600 ./backup.tar.gz [chráněno e-mailem]:/home/ramces/
Tele-to-tele s SCP
Kromě kopírování místních souborů na vzdálený server a naopak můžete také použít SCP ke správě více vzdálených serverů z místního počítače, protože SCP zpracovává pouze přenosy souborů a nerozlišuje mezi místním počítačem a vzdáleným počítačem.
Pro přenos mezi dvěma vzdálenými servery musíte explicitně uvést uživatelské jméno a adresu každého z těchto strojů. Například spuštění následujícího příkazu přesune soubor "remote-backup.tar.gz" můj mezi dvěma vzdálenými servery:
Scp [chráněno e-mailem]:/home/ramces/remote-backup.tar.gz [chráněno e-mailem]:/home/ramces/
Použijte proxy s SCP
Ve výchozím nastavení používá SCP při přenosu souborů mezi dvěma různými hostiteli IP adresu vašeho místního počítače. I když je to v normálních situacích naprosto v pořádku, může to být problém, pokud vaše místní síť omezuje jakoukoli aktivitu SCP. Jedním rychlým způsobem, jak se s tímto problémem vypořádat, je předat místní připojení přes SSH proxy.
Chcete-li to provést, musíte použít značku -o následuje možnost ProxyCommand. To vám umožní vytvořit základní připojení SSH k novému zařízení, které zase provede váš příkaz SCP. Například spuštěním následujícího vytvoříte nového agenta SSH na vzdáleném počítači a přenesete soubor "backup.tar.gz" používat to:
scp -o "ProxyCommand ssh [chráněno e-mailem] nc %h %p" ./backup.tar.gz [chráněno e-mailem]:/home/ramces/
Změňte výchozí port v SCP
Kromě vytvoření základního SSH proxy můžete také změnit výchozí port pro SCP. To je zvláště užitečné, pokud zabezpečujete linuxový server a nechcete odhalovat žádné virtuální porty.
Chcete-li použít SCP s jiným portem, musíte použít příznak -P následované číslem portu, který chcete použít. Například následující příkaz zkopíruje adresář "Záloha" rekurzivně a připojte se ke vzdálenému serveru pomocí portu 2222:
scp -r -P 2222 ./záloha [chráněno e-mailem]:/home/ramces/
Použijte tichý režim SCP
Nakonec je také možné zcela odstranit jakýkoli terminálový výstup z příkazu SCP. To je zvláště užitečné, pokud chcete vytvořit neinteraktivní skript, který běží ve vašem terminálu. Nejen to, ale tento proces můžete také plně automatizovat tvorbou Cronjob a přenést SSH klíč soukromé pro váš server.
Chcete-li vytvořit tichý přenos SCP, musíte použít příznak -q. Například následující příkaz přesune soubor "backup.tar.gz" tiše na můj vzdálený server:
scp -q ./backup.tar.gz [chráněno e-mailem]:/home/ramces/
Často kladené otázky
Q1: Můj dálkový ovladač pro teleport nefunguje v SCP. Jak to mohu opravit?
Odpovědět. Tento problém je pravděpodobně způsoben zablokovaným portem v jednom z konfiguračních souborů vzdáleného počítače. Chcete-li to vyřešit, ujistěte se, že výchozí port pro SSH je otevřený na obou zařízeních.
Tento problém může být také způsoben tím, že jeden z vašich vzdálených počítačů je za připojením CG-NAT, takže jakékoli externí připojení ke vzdálenému počítači nebude správně vyřešeno. Chcete-li tento problém vyřešit, musíte použít Software VLAN , Jako Yggdrasil , která vám umožní projít CG-NAT.
Otázka 2: Zapnul jsem SCP proxy a vzdálený hostitel ukončil připojení. Co můžu dělat?
Odpovědět. Tento problém je s největší pravděpodobností způsoben problémem s vaším proxy počítačem. Chcete-li správně spustit agenta SSH, ujistěte se, že počítač, který chcete použít, má server OpenSSH a netcat. Chcete-li tyto programy nainstalovat do Ubuntu Spusťte následující příkaz: sudo apt install ssh netcat.
Q3: Je možné zjistit všechny dostupné šifry pro SCP?
Odpovědět. Ve výchozím nastavení SCP silně spoléhá na protokol SSH pro své šifrovací funkce. Z tohoto důvodu můžete použít skript SSH k vytištění seznamu šifer, které můžete použít spolu s SCP. Můžete například běhat ssh -Q šifry Vytiskne krátký seznam všech dostupných šifer na vašem zařízení.