ইন্টারমিডিয়েট মেশিনের মাধ্যমে রিমোট এসএসএইচএসএস কীভাবে মাউন্ট করবেন? টানেলিং?


26

আমি এসএসএইচএফএস ব্যবহার করে একটি রিমোট ফাইল সিস্টেম (এ) মাউন্ট করতে চাই, তবে কখনও কখনও আমার আইপি ঠিকানা থাকে, যার থেকে অ্যাক্সেস অনুমোদিত নয়। সুতরাং আমার পরিকল্পনাটি সেই নেটওয়ার্কে অন্য কোনও মেশিন (বি) এর মাধ্যমে এটি অ্যাক্সেস করা। আমার স্থানীয় কম্পিউটারে বি এর উপর মাউন্ট এবং তারপরে বি (এবং এ) মাউন্ট করার দরকার আছে? এটা করতে একটি ভাল উপায় আছে কি?

হালনাগাদ

কেবল প্রক্রিয়াটি স্পষ্ট করতে:

প্রথমে আমি একটি সুড়ঙ্গ তৈরি করি

ssh -f user@machineB -L MYPORT:machineA:22 -N

এবং তারপরে আমি রিমোট ফাইল সিস্টেমটি মাউন্ট করব

sshfs -p MYPORT user@127.0.0.1:/myremotepath /mylocalpath

ইহা কি সঠিক?

কাজ শেষ হয়ে গেলে আমি কীভাবে টানেলটি ধ্বংস করব?


1
টানেল স্থাপনের আরও ভাল উপায় হ'ল জিএনইউ স্ক্রিন উইন্ডো থেকে বিএস এর সাথে সংযোগ স্থাপন করা ssh ব্যবহারকারী @ মেশিনবি -২২২২: মেশিনএ: ২২-এন যাতে আপনি সহজেই এটি ^ সি দিয়ে মেরে ফেলতে পারেন
এডকে

উত্তর:


9

হ্যাঁ টানেলিং আপনি সংযোগ মেশিন বি, মেশিন A -এর sshd বন্দর তারপর স্থানীয় সুড়ঙ্গ (-L) তৈরি sshfs করতে স্থানীয় হোস্টের নব নির্মিত সুড়ঙ্গ পোর্টের।


নিম্নলিখিত আদেশটি কি এটি করার সঠিক উপায়? ssh -f user@machineB -L 25:machineA:25 -N
আন্দ্রেই

1
হ্যাঁ আপনি যদি মেশিন এ 25 তে পোর্ট শোনেন তবে আপনাকে কেবল sshfs -p 25 ইউজার@127.0.0.1: / পাথ / লোকালপথ
এডিউ

1
আহা, তাই ডিফল্ট ssh সেটআপের জন্য আমার দরকার ssh -f user@machineB -L 22:machineA:22 -N, তাই না?
আন্দ্রেই

16

আপনি বিকল্প ব্যবহার করতে পারেন ssh_commandএর sshfsকৌতুক করতে হবে:

sshfs ma: /mnt -o ssh_command='ssh -t mb ssh'

স্বাভাবিকের সাথে আনমাউন্ট করুন

fusermount -u /mnt

দুঃখিত এটি 7 বছর দেরী ...


5
ওপেনশ ১.১ এ নতুন-জে বিকল্পের সাথে এটি কিছুটা বরাবর রয়েছে: sshfs মা: / mnt -o ssh_command = 'ssh -J এমবি'
ওহাদ রুবিন

0

আপনার সংযোগ প্রকল্প: Your machine --> Host B --> Host A

আমাদের সমাধানটি ওপেনএসএইচ 7.3 তে প্রবর্তিত প্রক্সি জাম্প ব্যবহার করবে , সুতরাং আপনার সংস্করণটি আরও নতুন কিনা তা পরীক্ষা করে দেখতে হবে:

ssh -V

তারপরে আপনার সঠিকভাবে আপনার ~ / .ssh / config কনফিগার করতে হবে । উদাহরণস্বরূপ, মেশিনবি যদি মেশিনএ থেকে পাসওয়ার্ড লগইন করে থাকে :

machineB
    HostName {machineB ip address}
    User {machineB username}
    Port {machineB port-number}
    IdentityFile ~/.ssh/{machineB private ssh key}

machineA
    ProxyJump machineB
    Hostname {machineA ip address, maybe in local network}
    User {machineA username}
    Port {machineA port-number}

অবশেষে, আপনার মাউন্টপয়েন্টটি তৈরি করুন এবং / etc / fstab এ লাইন যুক্ত করুন

machineB:{machineB mount path}  {your local mountpoint}  fuse.sshfs delay_connect,_netdev,user,idmap=user,follow_symlinks,identityfile={local path to machineB private key},default_permissions,uid={local user uid},gid={local user gid} 0 0

এর কি কোনও উপকার আছে বনাম বনাম কেবল ব্যবহার করে -o ssh_command="ssh -J machineB"?
ক্লিমেচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.