স্থানীয় ডিরেক্টরি এক্স থেকে দূরবর্তী ডিরেক্টরি Y তে কোনও ফাইল স্থানান্তর করতে scp ব্যবহার করুন


99

আমি এখানে অন্যান্য প্রশ্ন এবং ইন্টারনেটের বিভিন্ন "স্কিপ ব্যবহার" টিউটোরিয়াল ঘুরে দেখেছি, তবে আমি কী ভুল তা খুঁজে বের করতে পারি না।

আমি লিনাক্স মিন্ট ব্যবহার করছি এবং আমি স্কেপ কীভাবে কাজ করে তা বের করার চেষ্টা করছি ।

আমি ডিরেক্টরি / হোম / নাম / দির / ডিরেক্টরিতে একটি ফাইল.সেক্সট (আমার কম্পিউটারে) করেছি

আমি ssh ব্যবহার করে একটি রিমোট মেশিনে সংযুক্ত হয়েছি :

ssh -p 2222 username@domain

এটি আমাকে পাসওয়ার্ড জিজ্ঞাসা করে এবং শেলটি প্রদর্শন করে:

username@domain ~ $

এখন, আমি যদি কমান্ডটি জারি করি (চালানোর আগে আমি স্থানীয় ডিরেক্টরি / হোম / নাম / দির ছিলাম ):

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

আউটপুট হল:

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

একই ফলাফল যদি file.ext এর পরিবর্তে আমি সম্পূর্ণ পথটি লিখি

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

এছাড়াও, সার্ভার প্রশাসক আমাকে বলেছিল যে আমি ফাইলটি আমার দূরবর্তী হোম ডিরেক্টরিতে (মূলের পরিবর্তে) আপলোড করব, যেমন:

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

তবে যখন আমি এটি করি এবং "এন্টার" টিপুন তখন কিছুই ঘটে না, যেমন শেলটি আরও ইনপুটটির জন্য অপেক্ষা করছিল।

আমার সমস্যার সংক্ষিপ্তসার:

  • সিপি: এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই
  • শেল "আটকে" stuck / এ

কোনও পরামর্শ?


আপনার সমস্যাটি শুধুমাত্র ভুল মেশিনে থাকার সাথে সম্পর্কিত কিনা তা কিছুটা স্পষ্ট নয় ... আপনি যে হোস্টটি চালাচ্ছেন তার সাথে প্রতিটি কমান্ডের উপস্থাপন করতে পারেন? উদাহরণস্বরূপ localuser@machineA: ssh -p 2222 username@domain(আপনি মেশিনএতে লোকাল ব্যবহারকারী হিসাবে ssh কমান্ডটি চালাচ্ছেন তা বোঝাতে)
uMLäute

1
ব্যবহার করার সময় scp, দূরবর্তী দিকটিতে সর্বদা কোলন থাকতে হবে (উদাঃ remotehost:/tmp), অন্যথায় এটি কেবল একটি সাধারণ অনুলিপি scp /tmp/foo.txt example.comকরবে ( /tmp/foo.txtএকটি স্থানীয় ফাইলে অনুলিপি করবে example.com)
umläute

অপসারণ -rকরা, ফ্ল্যাগ হিসাবে এই (এটি ব্যবহার করা হয়ে একক ফাইল অনুলিপি করার জন্য প্রয়োজন হয় না যাও recursively ডিরেক্টরি অনুলিপি করুন)
umläute

আপনি কি শিशे সেশনের মধ্যে scp কমান্ড জারি করছেন ? আপনি যদি স্থানীয় মেশিনে থাকেন তবে এটি বোধগম্য হবে।
অ্যালেক্সিস

উত্তর:


119

আপনাকে scpস্থানীয় মেশিন থেকে কমান্ড চালাতে হবে, দূরবর্তী জায়গায় নয়। আপনার একেবারেই দরকার নেই ssh:

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

আপনারও দরকার নেই -r:

 -r      Recursively copy entire directories.  

আপনি যদি ইতিমধ্যে দূরবর্তী মেশিনে লগইন হয়ে থাকেন এবং আপনার স্থানীয় থেকে অনুলিপি করতে চান তবে আপনাকে অবশ্যই নিশ্চিত করতে হবে যে আপনার স্থানীয় মেশিনটি ইন্টারনেটের মাধ্যমে অ্যাক্সেসযোগ্য এবং sshসেট আপ হয়েছে। আমি মনে করি না আপনি যা করছেন এর পরে এটি যদি হয় তবে কেবল এটি দূরবর্তী থেকে চালান:

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

1
ধন্যবাদ। সমস্যাটি ছিল আমি ssh সেশনের ভিতরে স্কিপ চালানোর চেষ্টা করছিলাম। এখন এটা কাজ করছে!
ড্রাগনম্নল

28

আমি দূরবর্তী এবং স্থানীয় মেশিনের মধ্যে আপ / ডাউন লোড ফাইলের দুটি পদ্ধতি সরবরাহ করি (আমি ম্যাক এয়ার ব্যবহার করি):

এই ক্ষেত্রে, আমি স্থানীয় এবং দূরবর্তী মধ্যে "11.jpeg" আপ / ডাউন করতে চাই:

1।

স্থানীয় দিরের পরিষেবাতে ফাইলগুলি অনুলিপি করুন: এই কমান্ডটি পরিচালনা করতে আপনাকে অবশ্যই স্থানীয় বাশ টার্মিনালে থাকতে হবে, আপনি যখন এসএসএসে থাকবেন না!

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

স্থানীয় দির থেকে ফাইলগুলি অনুলিপি পরিষেবাতে অনুলিপি করুন: এছাড়াও আপনাকে অবশ্যই স্থানীয় বাশ টার্মিনালে থাকতে হবে

scp /Users/username/Desktop/11.jpeg username@domain:/home/xxx/xxx
  1. আপনি যখন এসএসএইচ-এ লগ ইন করছেন তখন একই অভিপ্রায়টি অর্জন করতে আপনাকে প্রথমে "সিস্টেমের পছন্দসমূহ> ভাগ করে নেওয়া> দূরবর্তী লগ ইন> সমস্ত ব্যবহারকারীকে সেট করতে হবে (আমি আপনাকে" সমস্ত ব্যবহারকারী "জন্য সেট করতে হবে কিনা তা নিশ্চিত নই, তবে এটি এই পরিস্থিতিতে কাজ করে) ) "ম্যাক আপনাকে বলবে" দূরবর্তীভাবে এই কম্পিউটারে লগ ইন করতে টাইপ করুন: ssh ব্যবহারকারীর নাম @ xxxxxx, তারপরে নীচের কমান্ডটি টাইপ করুন:

    scp ব্যবহারকারীর নাম @ ডোমেন: / home/xxx/xxx/11.jpeg ব্যবহারকারীর নাম @ xxxxxx: / ব্যবহারকারী / ব্যবহারকারী / ডেস্কটপ /

উপরের এই কমান্ডটি যখন আপনি ssh এ লগ ইন করছেন তখন দূরবর্তী থেকে লোকাল থেকে ফাইল ডাউনলোড করার জন্য, আপনি যখন ফাইল আপলোড করতে চান তখন দুটি পথ পরিবর্তন করুন।


পরিশেষে, আমি দেখতে পেলাম যে ফাইলজিলা সম্ভবত প্রতিদিনের
কাজগুলিতে

5

আপনি যদি এই স্কিপ কমান্ডটি রিমোট মেশিনে চালাচ্ছেন তবে এটি file.extএকটি "স্থানীয়" ফাইল হিসাবে অনুসন্ধান করছে , যেমন দূরবর্তী মেশিনে।

স্থানীয় একটিতে রিমোট মেশিন থেকে একটি ফাইল অনুলিপি করতে, scp -P 2222 username@domain:dir/file.ext localdir( উদাহরণস্বরূপ যেমন রিমোট কম্পিউটারে রয়েছে file.extতা ধরে নিবেন ~/dir) ব্যবহার করুন। আপনি যদি scpরিমোট মেশিনে চালনা করেন তবে "স্থানীয়" এবং "রিমোট" বিপরীত করুন।


1
ওপি স্থানীয় থেকে প্রত্যন্তে অনুলিপি করতে চায় , অপির শিরোনামটি দেখুন।
টেরডন

উফ, আমার ধারণা তুমি ঠিক আছ তবে তিনি দৃশ্যত এটি পিছনের দিকে করছেন ...
অ্যালেক্সিস

3

scpকমান্ডটি ব্যবহার করুন

আপনি যদি কোনও ফোল্ডার স্থানান্তর করতে চান zipতবে প্রথমে এটি, আমরা unzipপরে এটি করতে পারি।

আপনার কম্পিউটার থেকে, এটি চালান:

$ scp your_path_to_the_file/the_file root@10.145.198.100:~/

এখানে, rootআপনার অ্যাকাউন্ট এবং 10.145.198.100এটি দূরবর্তী সার্ভারের আইপি ঠিকানা। আমরা রিমোটে ফোল্ডারে অনুলিপি the_fileকরতে যাচ্ছি ~/

আনজিপ ফাইল:

$ unzip the_zip_file.zip -d destination_folder

rootএমনকি রিমোট মেশিনে এসএসএইচ অ্যাক্সেস থাকবে কেন ? এটি বেশ নিরাপত্তাহীন একটি সাধারণ ব্যবহার ব্যবহার করা ভাল এবং তারপরে sudoসেই মেশিনে মূল যা করতে হবে তা করা।
কুসালানন্দ

1

কেবলমাত্র একটি সামান্য অবদান, সম্ভবত এটি আমার মতো নতুনদের সহায়তা করতে পারে: দূরবর্তী ডিরেক্টরিতে যাওয়ার পথটি এভাবে লেখা উচিত: username@domain:~/remote_directory

আমি এখানে হাইলাইট করতে চাই যে আমাদের সর্বদা এটি যুক্ত করা উচিত :~/


0

সমাধান থেকে ফাইল কপি করতে Linux clientকরতেLinux Server

  1. sshdএটি ব্যবহার করে আপনার সার্ভারে চলছে কিনা তা পরীক্ষা করুন: ps aux | grep sshd

  2. Https://www.tecmint.com/install-openssh-server-in-linux/OpenSSH ব্যবহার করে ইনস্টল না করা থাকলেsudo apt-get install openssh-server openssh-client

  3. আপনার সার্ভারটি পুনরায় চালু করুন এবং যা sshdব্যবহার করে চলছে তা যাচাই করুনps aux | grep sshd

  4. আপনার যদি প্রয়োজন হয় তবে আপনি নিজের /etc/ssh/sshd_configফাইলটি কনফিগার করতে পারেন , তবে সাধারণ কনফিগারেশনের জন্য এটি প্রয়োজনীয় নয়

  5. বন্দরগুলি ব্যবহার করে খোলা আছে তা যাচাই করুন netcat nc -v -z 127.0.0.1 22

  6. Linuxক্লায়েন্ট থেকে ক্লায়েন্ট থেকে ফাইলগুলি অনুলিপি Linuxকরতে scp ব্যবহার করুন as scp ~/filename.md username@10.22.33.45:~/folder/filename.md

  7. ফাইলটি অনুলিপি করা হয়েছে যাচাই করতে ssh username@10.22.33.45আপনার পাসওয়ার্ডটি ব্যবহার করুন provide

Linux clientউইন্ডোজ থেকে ফাইলগুলি অনুলিপি করার সমাধান

  1. উইন্ডোজে এসএসএইচ সার্ভার যেমন এমএস থেকে ওপেনএসএসএইচ চালানোর জন্য একাধিক ক্লায়েন্ট রয়েছে

    MobaSSH

    বিটভিজ এসএসএইচ সার্ভার

  2. উপরের সার্ভারগুলির মধ্যে একটি ইনস্টল করুন এবং নিশ্চিত করুন যে 22 ব্যবহার করে পোর্ট খোলা আছে

    netsh advfirewall ফায়ারওয়াল নিয়মের নাম = "এসএসএইচ পোর্ট 22" দির = ক্রিয়াকলাপে = অনুমতি প্রোটোকল = ইউডিপি লোকালপোর্ট = 22

    netsh advfirewall ফায়ারওয়াল নিয়মের নাম = "এসএসএইচ পোর্ট 22" দির = আউট অ্যাকশন = প্রোটোকলকে অনুমতি দিন = ইউডিপি লোকালপোর্ট = 22

    netsh advfirewall ফায়ারওয়াল নিয়মের নাম = "এসএসএইচ পোর্ট 22" দির = ক্রিয়াকলাপে = অনুমতি প্রোটোকল = টিসিপি লোকালপোর্ট = 22

    netsh advfirewall ফায়ারওয়াল নিয়মের নাম = "এসএসএইচ পোর্ট 22" দির = আউট অ্যাকশন = প্রোটোকলকে অনুমতি দিন = টিসিপি লোকালপোর্ট = 22

    নেটস অ্যাডফায়ারওয়াল সমস্ত প্রোফাইলে স্টেট অফ করে off

  3. এই সার্ভারগুলির তুলনা:

    বিটভিজ এসএসএইচ সার্ভার

    1. নেটিভ cmdপ্রম্পট, powershellপ্রম্পট, স্বতঃপূরণ প্রায় কাছাকাছি সরবরাহ করে

    2. আপনার উন্নত ব্যবহারের প্রয়োজন হলে কাস্টমাইজেশনের জন্য অতিরিক্ত ক্ষমতা সরবরাহ করে

    3. সাধারণ প্রয়োজনের জন্য ব্যবহারকারী কাস্টমাইজেশন 0 হয়। আমি পেতে MobaSSHএবং OpenSSHকাজ করার চেষ্টা করে অনেক সময় ব্যয় করার পরে, 2 মিনিটের মধ্যে এটি শুরু করেছি ।

    4. Scp ব্যবহার করে ফাইলগুলি অনুলিপি করতে: scp ~/filename.md username@10.33.44.45:/C/Users/username/filename.md

    5. ব্যক্তিগত ব্যবহারের জন্য বিনামূল্যে, পেশাদার ব্যবহারের জন্য 99 ডলার $ অনেকগুলি বৈশিষ্ট্য এবং দুর্দান্ত একীকরণের কারণে, দামটি মূল্যবান

    MobaSSH:

    1. Windows এ একটি Linux শেল যেখানে সহজ লিনাক্স যেমন কমান্ড প্রদান করে ls, cp, findইত্যাদি কাজ, অনুরূপMINGW64

    2. আপনি অ্যাক্সেস করতে পারেন cmdএবং powershellটাইপ করে সরাসরি cmdবা powershell

    3. ইউনিকোড সমর্থন দুর্বল। এনকোডিং সঠিক নয়। উদাহরণস্বরূপ যদি আপনি Pythonব্যাখ্যাকারী শুরু করার চেষ্টা করেন তবে এটি ক্রাশ হবে। আপনাকে ম্যানুয়ালি ( https://stackoverflow.com/a/12834315/4752883 ) ব্যবহার করে এনকোডিংটি পরিবর্তন করতে হবে : chcp 65001 set PYTHONIOENCONDING=utf-8 এবং তারপরে পাইথন প্রম্পট শুরু করতে হবে

    4. মোবাএসএইচএইচ সম্পর্কে দুর্দান্ত জিনিসটি হ'ল এটির একটি খুব সাধারণ ইউজার ইন্টারফেস রয়েছে এবং scpএবং sshএবং ভালভাবে সংহত করা হয়েছে। তাই সাধারণ ব্যবহারের ক্ষেত্রে কাজ করবে

    5. Linuxক্লায়েন্ট থেকে Windowsচলমান একটি সার্ভারে ফাইলগুলি অনুলিপি করতে MobaSSH: এটি ব্যবহার করুন scp ~/filename.md username@10.33.44.45:/cygdrive/c/Users/username/filename.md কারণ MobaSSHএটি ভিত্তিক cygwinএবং এর ড্রাইভগুলি একইভাবে ম্যাপ করা হয় cygwin-এস ড্রাইভ ম্যাপ করা হয়।

    মাইক্রোসফ্টের ওপেনএসএসএইচভি 6.7 সহ মাইক্রোসফ্ট থেকে ভিএমএস ব্যবহার করুন https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ থেকে ইনস্টল করা , ওপেনএসএসএইচভি 6.7 ইতিমধ্যে ইনস্টল করা আছে।

    1. এটি খুব বগি এবং আপনার এটি ভারীভাবে কাস্টমাইজ করা প্রয়োজন।

    2. কমান্ড সমাপ্তি কাজ করে না

    3. আপনি যখন টার্মিনালে কার্সারটি চালাচ্ছেন তখন এটি ফাঁকা স্থান ছেড়ে দেবে

    4. পাইথন কাজ করে না

    5. ওপেনএসএসএইচের পরবর্তী সংস্করণগুলি এতে উন্নত হতে পারে। আরও এমএস https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ এর মাধ্যমে ওপেনএসএসএইচ উপলব্ধ করে বলে মনে হচ্ছেOptional Features


-1

যদি আপনি ওএসএক্সে থাকি ...

যখন আমি এটি ব্যবহারকারীর নাম @ স্থানীয়: / ফাইল_নির্দেশক দিয়ে চালানোর চেষ্টা করেছি ...

আমি নিম্নলিখিত ত্রুটি পেয়েছি:

ssh: local: node name or service name not known

সমাধান

আমার ম্যাকে স্থানীয় সেটআপ করার জন্য আমাকে নিম্নলিখিতগুলি করতে হয়েছিল ssh:

'সিস্টেম পছন্দসমূহ' -> 'ইন্টারনেট ও নেটওয়ার্কিং' -> 'ভাগ করা' -> সক্ষম করুন 'রিমোট লগইন'

এটি পরে ব্যবহারকারীর নাম @ আইপি ঠিকানা সরবরাহ করে provided


-1

আমি আজ ম্যাক এ একই সমস্যা ছিল।

নিম্নলিখিত কমান্ডটি টাইপ করুন:

scp /local-file-path/ /-remote-location-path/
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.