Трансфер на файлове със сигурно използване на SCP в Linux
Най-разпространеният начин да получите терминален достъп до отдалечена Linux машина е да използвате Secure Shell (SSH). За да работи, сървърът на Linux трябва да работи с SSH сървър (OpenSSH), а в другия край се нуждаете от SSH клиент, нещо като PuTTy в Windows или от инструмента за команден ред ssh
на Linux или други Unix-подобни операционни системи като FreeBSD,
Привличането на SSH е, че връзката между двете машини е криптирана. Това означава, че можете да получите достъп до сървъра от където и да е по света, като знаете, че връзката е сигурна. Реалната сила на SSH обаче е, че сигурната връзка, която тя осигурява, може да се използва за повече от терминален достъп. Използването му е възможността за копиране на файлове до и от отдалечен сървър.
За да подготвите сървъра, трябва да инсталирате openssh-server
на openssh-server
. В Ubuntu можете да го инсталирате от софтуера на Ubuntu или да използвате командния ред:
sudo apt-get инсталирате openssh-сървър
След това трябва да откриете IP адреса на сървъра. В Ubuntu IP адресът се показва в Мрежовия аплет в System Settings или можете да използвате командния ред:
фоп
На изхода търсете линията, започваща с inet
под eth0
. В този пример IP адресите на сървъра са 192.168.1.101.
За да тествате SSH връзката, преминете към машината на клиент на Linux и въведете:
ssh 192.168.1.101
Където 192.168.1.101 е IP адресът на сървъра. Въведете потребителското си име и парола, когато получите подкана, и ще бъдете свързани към отдалечената машина. Ако получите въпрос относно "автентичността на хоста не може да бъде установена" просто отговорете "да" на въпроса. Това е проверка за сигурност, създадена, за да сте сигурни, че се свързвате с вашия реален сървър, а не с подкуп.
Сега, след като сте проверили връзката SSH, можете да започнете да копирате файлове между двете машини. Защитеното копиране се постига с помощта на scp
. Основният формат на командата scp
е:
scp / filepath / към / файл / към / копие потребител @ IP адрес: localpath
Например, за да копирате файла "backup.zip" от локалната машина в папката "backups" в домашната директория на потребител "gary" на отдалечения сървър с IP адрес на 192.168.1.101, използвайте:
scp backup.zip [email protected]: архивиране /
Подобно на това, когато се свързвате със ssh
, ще бъдете подканени за паролата. Няма да бъдете подканени за потребителското име, както е посочено в командата.
Можете да използвате и диви карти, като:
scp * .zip [email protected]: архивиране /
За да копирате файл от отдалечения сървър в локалната машина, трябва само да промените параметрите:
scp [email protected]: архивиране / backup.zip.
Обърнете внимание на точката в края на командата, която означава "текущата директория", както е при стандартните cp
или mv
команди.
И същото с дивите карти:
scp [email protected]: архиви / * .zip.
За рекурсивно копиране на директория на отдалечен сървър използвайте опцията -r
:
scp -r архиви / [email protected]: архиви /
И за да копирате рекурсивно копие на директория от отдалечения сървър до локалната машина използвайте:
scp -r [email protected]: архивиране /.
Ако не искате да поставите входящите файлове в текущата директория (забележете точката в края), тогава можете да зададете различно име на директория:
scp -r [email protected]: архивиране / архивиране от сървър /
заключение
scp
е мощен и все пак удобен начин за копиране на файлове към и от сървър, без да се налага да настройвате FTP или други сървъри за споделяне на файлове. Той има допълнителен бонус, че е защитен (нещо, което не може да се каже за инсталация по подразбиране за FTP). За да продължите напред, опитайте да експериментирате с опцията -C
, която позволява компресиране по време на копирането или опцията -l
, която ограничава честотната лента по време на копирането.