প্রদত্ত এসএসএইচ হোস্টের জন্য একটি ভেরিয়েবল সেট করা


17

ইন ssh_config, কেউ ব্যবহার করে হোস্টের জন্য কিছু পরিবেশের ভেরিয়েবল রফতানি করতে পারেন SendEnv

হোস্ট প্রতি এই ভেরিয়েবলের জন্য একটি প্রদত্ত মান জোর করার উপায় আছে কি? উদাহরণস্বরূপ, হোস্টের সাথে সংযোগ স্থাপনের সময় কেবল $FOOমান সহ পরিবর্তনশীল রফতানি করা সম্ভব হবে ?barexample.com


উত্তর:


16

আপনি পরিবেশে পরিবর্তনশীল জন্য একটি নির্দিষ্ট মান দিতে পারবেন না ssh_config, তবে আপনি অবশ্যই বিদ্যমান পরিবেশের পরিবর্তনশীল কেবল নির্দিষ্ট হোস্টগুলিতে প্রেরণ করতে পারেন।

Host example.com
    SendEnv FOO

চেইনটি সম্পূর্ণ করতে:

FOO=bar ssh user@example.com

অবশেষে, দূরবর্তী সার্ভারে তালিকাভুক্ত এনভায়রনমেন্ট ভেরিয়েবল থাকতে হবে AcceptEnvতার মধ্যে sshd_config

AcceptEnv FOO

আপনি এড়াতে চান অবিকল কি?
মাইকেল হ্যাম্পটন

1
প্রদত্ত মান সহ একটি ভেরিয়েবল প্রেরণের জন্য একটি উপনাম লিখতে হবে।
haphink

দুঃখিত, কম্পিউটারটি আপনার মন পড়তে না পারলে আপনি আরও কিছু করতে পারবেন না ... :)
মাইকেল হ্যাম্পটন

6
আমার সন্দেহের নিশ্চিত যদিও ;-) আমি পছন্দ করেছেন চাই ভালো কিছু হত জন্য ধন্যবাদ SetVar FOO='bar'মধ্যে ssh_config);
ℝaphink

2
আমার জন্য পুনরাবৃত্তির ক্ষেত্রে পুরানো সিস্টেমগুলি সমর্থন করে না TERM=tmux-256colorতাই আমি প্রতি দূরবর্তী হোস্টের জন্য ফ্যালব্যাক চাই (ওয়াইল্ডকার্ড সহ)।
জেড

4

আপনি ব্যবহার করে একটি সুনির্দিষ্ট মানের দিতে পারেন SetEnvআপনার ~/.ssh/configযেমন

Host *
  SetEnv FOO=bar

অনুসারে man ssh_config:

সরাসরি এক বা একাধিক পরিবেশের ভেরিয়েবল এবং তাদের সামগ্রীগুলি সার্ভারে প্রেরণের জন্য নির্দিষ্ট করুন। একইভাবে SendEnv, সার্ভারকে পরিবেশের পরিবর্তনশীল গ্রহণ করতে প্রস্তুত থাকতে হবে।

ধরে নিলাম আপনার সার্ভারটি নিম্নলিখিত লাইনটি পেয়েছে /etc/ssh/sshd_config:

AcceptEnv LANG LC_* FOO

এছাড়াও পরীক্ষা করুন: man ssh_configএবং man sshd_config


2
বিস্মিত পাঠকের জন্য নোট (আমার মতো, যখন আমি এটি প্রথম পড়ি): 2018 সালের আগস্টে প্রকাশিত ওপেনএসএসএইচ 7.8 সাল থেকে এটি নতুন এবং এটি ওএস আপডেটের মাধ্যমে গড় ব্যবহারকারীর কাছে উপলব্ধ হতে কিছুটা সময় নিতে হবে। (কিন্তু একবার এটা সাধারণ হয়ে আছে, এটা পর্যন্ত সমস্যার সবচেয়ে ভালো সমাধান দ্বারা হবে)
Irfy

1

আরেকটি ধারণা হ'ল ssh কমান্ডে এনভায়রনমেন্ট ভেরিয়েবল সেট করা এবং ইন্টারেক্টিভ শেল চালানো, যেমন। আমি এনটিভ-ভার 'মনভিডথ' দিয়ে একটি ইন্টারেক্টিভ শেলটি চালানোর চেষ্টা করছি:

ssh example.com 'MANWIDTH=120 bash -li'

0

আপনি .ssh / config ফাইল ব্যবহার করে প্রতি হোস্ট কনফিগারেশন মান সেট করতে পারেন। উদাহরণ স্বরূপ:

Host example.com
SendEnv FOO

নোট করুন যে সার্ভারকেও এটি সমর্থন করতে হবে।

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