প্রক্সিকম্যান্ড এবং নেটক্যাট মোড ব্যবহার করার সময় কনফিগারেশন থেকে হোস্টের নামগুলি সমাধান করুন


16

আমি ssh সংযোগগুলি বাউন্স করার জন্য কিছু সর্বজনীন বিকল্পগুলি সেট আপ করার চেষ্টা করছি। ~/.ssh/configসংক্ষেপে আমার ফাইলটি এখানে :

Host *%via
  ProxyCommand ssh gateway -W $(echo %h | cut -d%% -f1) %p

Host gateway
  HostName gateway.example.com
  User username
  ForwardAgent yes
  IdentityFile keypathg

Host target
  User username
  HostName target.example.com
  IdentityFile keypatht

আমি যখন এলিয়াস ব্যবহার করে *%viaব্যবহার করি তখন আমি Hostপাই:

% ssh -vvv target%via
OpenSSH_5.9p1, OpenSSL 0.9.8y 5 Feb 2013
debug1: Reading configuration data /Users/myuser/.ssh/config
debug1: /Users/myuser/.ssh/config line 5: Applying options for *
debug1: /Users/myuser/.ssh/config line 12: Applying options for *%via
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: auto-mux: Trying existing master
debug1: Control socket "/Users/myuser/.ssh/tmp/target%via_22_myuser" does not exist
debug2: ssh_connect: needpriv 0
debug1: Executing proxy command: exec ssh -A gateway -W $(echo target%via | cut -d% -f1):22
debug1: permanently_drop_suid: 501
debug1: identity file /Users/myuser/.ssh/id_rsa type -1
debug1: identity file /Users/myuser/.ssh/id_rsa-cert type -1
debug1: identity file /Users/myuser/.ssh/id_dsa type -1
debug1: identity file /Users/myuser/.ssh/id_dsa-cert type -1
ssh_exchange_identification: Connection closed by remote host

তবে, যদি আমি ব্যবহার করি

% ssh target.example.com%via

আমি টার্গেট সার্ভারটি আঘাত করেছি তবে ভুল ব্যবহারকারী হিসাবে এবং কোনও পাবকি প্রমাণীকরণ ছাড়াই।

আমি মনে করি আমার প্রশ্নটি এই মুহূর্তে, বাউন্স করার এই পদ্ধতিটি কী যখন ব্যবহার করা হয় তখন ForwardAgentআমার এসএসএস কনফিগারেশন / এনভায়রনমেন্ট পুরোটি বা কেবল কীগুলি দিয়ে যায়। যদি কেবল কীগুলি হয় তবে প্রাক্তনটিকে কোনও উপায়ে ব্যবহার করা যেতে পারে?

আমার ssh সংস্করণটি 5.9v1, গেটওয়ে 5.9v1, এবং লক্ষ্য 5.3p1। আমি বিশ্বাস করি -W5.4 এ চালু হয়েছিল, তবে এটি চূড়ান্ত বাক্সের সাথে লাইন রাখে না? পুরানো স্কুল ব্যবহার ncঅন্যরকম বলে মনে হচ্ছে না।

আমি যাচাই করেছি যে আমি লাইনটির প্রতিটি বাক্সে ম্যানুয়ালি এসশ করতে পারি। এটি করা ইঙ্গিত দেয় যে হোস্টনাম ওরফে তথ্য পাস করা হয় নি, যেমন গেটওয়েতে থাকা অবস্থায় আমি পারি না ssh targetতবে পারি ssh target.example.com। এটি পবকি আথের সাথে কাজ করে। গেটওয়ে এবং টার্গেটে ঘটনাক্রমে একই ব্যবহারকারীর নাম থাকে, এ কারণেই কোনও কনফিগার চাপানো না হলে এটি কাজ করে।

যদি ForwardAgentবা অনুরূপ কনফিগারেশন এই তথ্যটিকে ধাক্কা দিতে না পারে, তবে এই তথ্যটি দিয়ে গেটওয়েতে একটি .ssh / কনফিগারেশন রেখে, তার চারপাশে যাওয়ার সানেষ্ট উপায় কী?

উত্তর:


14

বাহ, এই প্রশ্ন জিজ্ঞাসা করার জন্য ধন্যবাদ। কেউ এসএসএইচকে পুরোপুরি শোষণ করে দেখে আমি বিরল বলে মনে করি এবং এই প্রশ্নটি বেশ কয়েকটি অঞ্চলে আঘাত হানে।

এটি কোনও ProxyCommandসমস্যা নয়। ProxyCommandকেবল দূরবর্তী ক্লায়েন্ট সাথে কথা বলতে চেষ্টা করার আগে প্রস্তুতি কিছু করতে স্থানীয় SSH ক্লায়েন্ট নির্দেশ দেয়। হ্যাঁ, আমাদের উদাহরণস্বরূপ, আমরা অন্য ssh অধিবেশনটির সাথে কথা বলি, তবে সেই সেশনটি -Wকেবল আমাদের ইনপুটটি নিয়ে এবং অন্য মেশিনে ফরোয়ার্ড করে। আপনি ভাবতে পারেন যে প্রস্তুতিমূলক ssh অধিবেশন সম্পূর্ণ স্বাধীন। অনিবার্য গাড়ির উপমা: আপনার গাড়িটি একই গাড়ি, বিন্দু A থেকে পয়েন্ট বিতে আপনাকে ফেরি চলাচল করতে হবে কিনা তা নির্বিশেষে car

এটি কোনও ForwardAgentসমস্যা নয়। ForwardAgentস্থানীয় ক্লায়েন্টের এমন কোনও সুবিধা রয়েছে যা দূরবর্তী সেশনের পরিবেশের মধ্যে স্থানীয় কীগুলি উপলব্ধ করে। রিমোট সেশনটি প্রতিষ্ঠা করে আপনি অতীত হন নি।

এটি একটি .ssh/configফর্ম্যাট সমস্যা। দ্বিতীয় এবং তৃতীয় ডিবাগ 1 লাইন নোট করুন। আপনার তালিকা থেকে হোস্টের স্টাঞ্জগুলি কীভাবে প্রয়োগ করা হচ্ছে তা সেগুলি তালিকাভুক্ত করে .ssh/config। আপনি নোট করেছেন যে এটি $ ssh target.example.com%viaকাজ করে তবে ভুল ব্যবহারকারী নাম এবং কী হিসাবে। ঠিক আছে, এর জন্য Host targetপদটি পঠিত হচ্ছে না (যা সঠিক ব্যবহারকারী নাম এবং কীফাইল সরবরাহ করবে)। কোন স্তবগুলি ব্যবহৃত হয়? *এবং *%via

এই বিকল্পগুলি কীভাবে পাস হবে? ভাল, যথেষ্ট আকর্ষণীয়, ওয়াইল্ডকার্ড 0 দৈর্ঘ্যের স্ট্রিংগুলির সাথে মেলে। Host target*ম্যাচ হবে target, target%via, target.example.comএবং target.example.com%via

এবং তাই আপনি প্রশ্ন জিজ্ঞাসা .ssh/configকরুন, gatewayমেশিন সাহায্যে একটি সেট করা হবে । না, এটা হবে না। এটি কখনও পড়া হবে না। আমাদের স্থানীয় মেশিন থেকে সবকিছু ঘটছে।

আমি সমস্ত ব্যাখ্যা করেছি, কেবল উত্তর দিচ্ছে কেন $ ssh target.example.com%viaকাজ করছে না।

আপনি পছন্দ $ ssh target%via। ঠিক তাই, এটি আরও সুবিধাজনক। সংক্ষিপ্ত ফর্মটি ব্যর্থ হচ্ছে কারণ হোস্টনাম হিসাবে, targetএটি পাওয়া যায় নি; এটি সমাধান হয় না। কেন SSH spewing নয় না: ssh: Could not resolve hostname target: Name or service not known? কারণ ProxyCommandইতিমধ্যে সফলভাবে প্রতিষ্ঠিত হয়েছে। একটি এসএসএস সংযোগের উপাদান তৈরি করা হয়েছে, তবে হোস্টনাম ব্যর্থতা ঘটছে যেখানে এটি প্রত্যাশা করা হচ্ছে না এবং তাই এটি আরও সাধারণ বার্তাটি দিয়ে বোমা ফাটিয়েছে। ডিবাগের তথ্য কোথায় উন্নত করা যায় তা সনাক্ত করতে আমি এটিতে একটি বাগ রিপোর্ট ফাইল করব।

চূড়ান্ত ভাষ্য:

আমি Host *%viaসিনট্যাক্স পছন্দ করি । এটি পরিষ্কার, তবু নমনীয়। আমি আগে দেখেছি Host *+*এবং এটি %h(ost)কোথায় যেতে হবে তা নির্ধারণের জন্য প্রথম এবং শেষের উভয় অংশ ব্যবহার করে। তবে এটিকে ঘিরে আপনার মনকে আরও একটু বেশি প্রচেষ্টা করতে হবে। লিঙ্ক: http://wiki.gentoo.org/wiki/SSH_jump_host

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