ProxyJump
ওপেনএসএইচ 7.3 এ নতুন:
A$ scp -oProxyJump=B thefile C:destination
(পর্দার আড়ালে, এটি কেবল প্রক্সিকম্যান্ড এবং ব্যবহার করে ssh -W
))
ProxyCommand
অন্যান্য উত্তর থেকে -W অন্তর্ভুক্ত আপডেট হয়েছে:
A$ scp -oProxyCommand="ssh -W %h:%p B" thefile C:destination
যদি এ-তে খুব পুরানো এসএসএইচ ক্লায়েন্ট ইনস্টল করা থাকে ( -W
সমর্থন ছাড়াই ), বা বি টিসিপি ফরোয়ার্ডিং (তবে এখনও শেল কমান্ডের অনুমতি দেয়) অস্বীকার করার জন্য কনফিগার করা থাকে, তবে বিকল্পগুলি ব্যবহার করুন:
A$ scp -oProxyCommand="ssh B socat stdio tcp:%h:%p" thefile C:destination
A$ scp -oProxyCommand="ssh B nc %h %p" thefile C:destination
পাইপ
A$ tar cf - thefile anotherfile | ssh B "ssh C \"cd destination && tar xvf -\""
A$ (echo thefile; echo anotherfile) | cpio -o | ssh B "ssh C \"cd destination && cpio -i\""
শুধুমাত্র একটি ফাইলের জন্য:
A$ ssh B "ssh C \"cd destination && cat > thefile\"" < thefile
বি এর মাধ্যমে "টানেল"
A$ ssh -f -N -L 4567:C:22 B
(continues running in background)
A$ scp -P 4567 thefile localhost:destinationPath
আপনার কাজ শেষ হয়ে গেলে, আগের শুরু হওয়া ssh
প্রক্রিয়াটি (যা কারণে ব্যাকগ্রাউন্ডে নেমে গেছে -f -N
) হত্যা করতে ভুলবেন না ।
-f
কমান্ড প্রয়োগের ঠিক আগে পটভূমিতে যাওয়ার জন্য ssh কে অনুরোধ করুন। এটি দরকারী যদি ssh পাসওয়ার্ড বা পাসফ্রেজগুলির জন্য জিজ্ঞাসা করতে চলেছে তবে ব্যবহারকারী ব্যাকগ্রাউন্ডে এটি চায়। এটি বোঝায় -n।
-N
রিমোট কমান্ড প্রয়োগ করবেন না। এটি কেবল ফরওয়ার্ডিং বন্দরগুলির জন্য দরকারী।
বি থেকে এ পর্যন্ত "টানেল" বিপরীত করুন
যদিও সর্বদা কাজ করে না:
A$ ssh -f -N -R 4567:localhost:22 B
(now you can reach A from B, by using localhost:4567)
B$ scp -P 4567 localhost:thefile C:destination
-R
নির্দিষ্ট করে যে দূরবর্তী (সার্ভার) হোস্টের প্রদত্ত টিসিপি পোর্ট বা ইউনিক্স সকেটের সংযোগগুলি স্থানীয় পক্ষের প্রদত্ত হোস্ট এবং পোর্ট বা ইউনিক্স সকেটে ফরোয়ার্ড করতে হবে।
A$ rsync <options> -e 'ssh B ssh' source C:destination