وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

روش استفاده از دستور SCP برای انتقال ایمن فایل ها

0 0
زمان لازم برای مطالعه: 5 دقیقه



SCP (کپی امن) یک است command-line ابزاری که به شما امکان می دهد به طور ایمن فایل ها و دایرکتوری ها را بین میزبان ها از طریق شبکه کپی کنید.

هنگام انتقال داده با scp، هم فایل ها و هم اعتبارنامه های احراز هویت رمزگذاری شده اند و از شنود و شنود داده ها محافظت می کنند. SCP از پروتکل SSH برای احراز هویت و رمزگذاری استفاده می کند.

این راهنما روش استفاده از scp دستور با مثال های عملی و توضیحات مفصل از پرکاربردترین گزینه ها.

پروتکل SCP قدیمی است. برای انتقال فایل، پروژه OpenSSH استفاده از مدرن تر و ایمن تر را توصیه می کند SFTP
یا rsync
پروتکل ها

نحو دستور SCP

قبل از پرداختن به روش استفاده از scp دستور، اجازه دهید با بررسی نحو اصلی شروع کنیم.

را scp دستور دستور به شکل زیر است:

scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2
  • OPTIONگزینه های scp
    مانند رمز، پیکربندی ssh، پورت ssh، محدودیت، کپی بازگشتی و غیره.
  • “ – .
  • [user@]SRC_HOST:]file1 – مسیر فایل منبع نام کاربر روی ماشین مبدأ و نام میزبان (یا آدرس IP) ماشین مبدأ زمانی که فایل قرار دارد استفاده می‌شود روی یک دستگاه از راه دور
  • [user@]DEST_HOST:]:file2 – مسیر فایل مقصد. نام کاربر روی ماشین مقصد و نام میزبان (یا آدرس IP) ماشین مقصد زمانی که فایل قرار دارد استفاده می شود روی یک دستگاه از راه دور

Local فایل ها را می توان با استفاده از یک مسیر مطلق یا نسبی مشخص کرد، در حالی که نام فایل های راه دور باید شامل یک کاربر و host مشخصات

scp تعدادی گزینه را ارائه می دهد که هر جنبه ای از رفتار آن را کنترل می کند. پرکاربردترین گزینه ها عبارتند از:

  • -P – ریموت را مشخص می کند host پورت ssh
  • -p – حفظ تغییر فایل و زمان دسترسی.
  • -q – اگر می خواهید پیغام های پیشرفت سنج و پیام های بدون خطا را سرکوب کنید از این گزینه استفاده کنید.
  • -C – این گزینه نیروهای scp برای فشرده سازی داده ها هنگام ارسال به ماشین مقصد.
  • -r – این گزینه می گوید scp برای کپی کردن دایرکتوری ها به صورت بازگشتی
  • -3 – بین دو هاست راه دور از طریق ماشین محلی کپی کنید.
پیشنهاد می‌کنیم بخوانید:  روش بررسی و فهرست کردن فرآیندهای در حال اجرا در لینوکس

قبل از شروع

را scp فرمان متکی است روی ssh برای انتقال داده، بنابراین برای احراز هویت به یک کلید ssh یا رمز عبور نیاز دارد روی سیستم های راه دور

روده بزرگ (:) چگونه است scp بین مکان های محلی و دورافتاده تمایز قائل می شود.

برای اینکه بتوانید فایل ها را کپی کنید، باید حداقل مجوز خواندن داشته باشید روی منبع و اجازه نوشتن روی مقصد

هنگام کپی کردن فایل هایی که نام و مکان مشابهی دارند مراقب باشید روی هر دو سیستم؛ scp فایل ها را بدون هشدار بازنویسی می کند.

هنگام انتقال فایل های حجیم، توصیه می شود scp دستور داخل صفحه نمایش یا جلسه tmux.

کپی فایل ها و دایرکتوری ها بین دو سیستم با scp

با scp، می توانید یک فایل یا دایرکتوری را کپی کنید:

  • از سیستم محلی شما به یک سیستم راه دور.
  • از یک سیستم راه دور تا سیستم محلی شما.
  • بین دو سیستم راه دور از سیستم محلی شما.

کپی یک Local فایل به یک سیستم از راه دور با scp فرمان

برای کپی کردن یک فایل از یک سیستم محلی به یک سیستم راه دور، دستور زیر را اجرا کنید:

scp file.txt remote_username@10.10.0.2:/remote/directory

کجا file.txt نام فایلی است که می خواهیم کپی کنیم، remote_username کاربر است روی سرور راه دور، 10.10.0.2 آدرس IP سرور است. را /remote/directory مسیر دایرکتوری است که می خواهید فایل را در آن کپی کنید. اگر دایرکتوری راه دور را مشخص نکنید، فایل در فهرست اصلی کاربر راه دور کپی می شود.

از شما خواسته می شود رمز عبور کاربر و انتقال را وارد کنید process آغاز خواهد شد.

remote_username@10.10.0.2's password:
file.txt                             100%    0     0.0KB/s   00:00

حذف نام فایل از محل مقصد، فایل را با نام اصلی کپی می کند. اگر می خواهید فایل را با نام دیگری ذخیره کنید، باید نام فایل جدید را مشخص کنید:

scp file.txt remote_username@10.10.0.2:/remote/directory/newfilename.txt

اگر SSH روی از راه دور host در حال گوش دادن است روی پورتی غیر از 22 پیش فرض، سپس می توانید پورت را با استفاده از -P استدلال:

scp -P 2322 file.txt remote_username@10.10.0.2:/remote/directory

برای کپی کردن یک دایرکتوری و همه فایل‌های آن، کد را فراخوانی کنید scp فرمان با -r flag، که به صورت بازگشتی کل فهرست و محتویات آن را کپی می کند:

scp -r /local/directory remote_username@10.10.0.2:/remote/directory

هنگام استفاده از حروف عام مانند * یا ? برای مطابقت با فایل ها یا دایرکتوری های خاص، برای جلوگیری از گسترش پوسته، باید مسیری را که شامل کاراکترهای عام است در گیومه قرار دهید (" ") یا نقل قول های تکی (' '). در مثال زیر، ما در حال کپی کردن همه موارد هستیم .txt فایل های محلی Projects دایرکتوری به Projects دایرکتوری روی سرور راه دور:

scp "~Projects/*.txt" remote_username@10.10.0.2:/home/user/Projects/

اگر می‌خواهید فراداده فایل را که از جمله اطلاعات دیگر شامل مالکیت و تاریخ ایجاد آن فایل است، حفظ کنید، -p گزینه به عنوان مثال، برای کپی کردن file.txt در دایرکتوری راه دور و حفظ ابرداده، وارد کنید:

scp -p file.txt remote_username@10.10.0.2:/remote/directory/

یک فایل از راه دور را در a کپی کنید Local سیستم با استفاده از scp فرمان

برای کپی کردن یک فایل از یک کنترل از راه دور به یک سیستم محلی، از مکان راه دور به عنوان منبع و مکان محلی به عنوان مقصد استفاده کنید.

پیشنهاد می‌کنیم بخوانید:  روش نصب پایتون 3.8 روی CentOS 8

به عنوان مثال، برای کپی کردن یک فایل به نام file.txt از یک سرور راه دور با IP 10.10.0.2، دستور زیر را اجرا کنید:

scp remote_username@10.10.0.2:/remote/file.txt /local/directory

اگر یک ورود بدون رمز عبور SSH به دستگاه راه دور تنظیم نکرده باشید، از شما خواسته می شود رمز عبور کاربر را وارد کنید.

یک فایل بین دو سیستم از راه دور با استفاده از scp فرمان

بر خلاف rsync، هنگام استفاده scp، برای انتقال فایل ها از یک دستگاه راه دور به دستگاه دیگر نیازی به ورود به یکی از سرورها نیست.

دستور زیر فایل را کپی می کند /files/file.txt از راه دور host host1.com به دایرکتوری /files روی از راه دور host host2.com.

scp user1@host1.com:/files/file.txt user2@host2.com:/files

از شما خواسته می شود که رمز عبور هر دو حساب راه دور را وارد کنید. داده ها مستقیماً از یک کنترل از راه دور منتقل می شوند host به دیگری

برای هدایت ترافیک از طریق دستگاه روی که فرمان صادر می شود، از -3 گزینه:

scp -3 user1@host1.com:/files/file.txt user2@host2.com:/files

نکاتی برای استفاده روزمره

  • یک احراز هویت مبتنی بر کلید SSH تنظیم کنید و بدون وارد کردن رمز عبور به سرورهای لینوکس خود متصل شوید.

  • اگر به طور منظم به همان هاست متصل می شوید، گردش کار خود را با تعریف همه اتصالات خود در فایل پیکربندی SSH ساده کنید.

    ~/.ssh/config
    Host myserver_name
        HostName 10.10.0.2
        User leah
        Port 2222
    

یادداشت مدرن (1404)

جدیدترین نسخه های OpenSSH به طور پیش فرض پروتکل SFTP برای scp. برای اجبار پروتکل SCP قدیمی (گاهی برای سرورهای بسیار قدیمی مورد نیاز است)، از -O پرچم:

scp -O file_name.txt remote_host:/tmp/

نتیجه گیری

اگر به دنبال راهی سریع، قابل اعتماد و ایمن برای کپی کردن فایل ها و دایرکتوری ها بین سیستم های لینوکس خود هستید، scp ابزار مناسبی برای کار است

اگر سوالی دارید، لطفا در زیر نظر دهید.

scp
terminal
برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1404-11-10 15:08:07

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید