sh / .ssh / কনফিগারেশন থেকে ssh_config এ সেট সেন্ডইনভ ভেরিয়েবলগুলি কীভাবে অক্ষম করবেন


30

আমি এটি কোথাও খুঁজে পেলাম না তাই আমি ভাবছি যে আমিই কেবল এই জাতীয় সমস্যাটিতে আঘাত করছি।

রেড হ্যাট এবং ডিবিয়ানের ডিফল্টরূপে কমপক্ষে দূরবর্তী সেশনে এলসি * এবং ল্যাং ভেরিয়েবলগুলি পাস করার জন্য সেন্ডইনভ বিকল্প সহ কমপক্ষে একটি ssh_config রয়েছে। যদি কেউ / etc / ssh / ssh_config পরিবর্তনের মূল না হয় তবে সে কীভাবে সেই আচরণটি অক্ষম করতে পারে? সেন্ডইএনভি বিকল্পটি জমা হচ্ছে বলে মনে হচ্ছে এবং আমি এটি পুনরায় সেট করার কোনও উপায় দেখতে পাচ্ছি না।

এবং জিজ্ঞাসা করা এড়াতে, স্ক্রিপ্টগুলি এবং প্রোগ্রামগুলিতে লোকেশনের উপর নির্ভরশীল যেগুলি মেশিনের ডিফল্ট হিসাবে নির্ভর করে তার পার্শ্ব প্রতিক্রিয়া এড়াতে আমার নিজের লোকেলগুলি পরীক্ষা করতে মেশিনগুলি পরীক্ষা করা এড়াতে হবে।


এটি আপনার প্রশ্নের উত্তর নয়, তবে আপনি কি নিজের টেস্ট মেশিনে স্ক্রিপ্টগুলি এবং প্রোগ্রামগুলির envসাহায্যে একটি মোড়ক স্ক্রিপ্টের মাধ্যমে বা এর সাহায্যে সমাধান করতে পারবেন ?
স্কট

2
হ্যাঁ, কাজের
ক্ষেত্রগুলি

উত্তর:


18

আপনি একমাত্র নাssh_config(5)আপনি নথিভুক্ত হিসাবে আনসেট করতে পারবেন না SendEnv, কারণ

একাধিক পরিবেশের ভেরিয়েবলগুলি [...] একাধিক SendEnv নির্দেশিকায় ছড়িয়ে থাকতে পারে।

আপনার যদি পরীক্ষার মেশিনগুলির মূল থাকে তবে আপনি AcceptEnvক্লায়েন্টের পাঠানো ভেরিয়েবলগুলি গ্রহণ না করে পরিবর্তন করতে পারেন ।


4
বোকা, আমি দেখতে পেলাম -F কমান্ড লাইনে সাহায্য করতে পারে তবে এটি ব্যবহার করতে খুব অসুবিধা হয় না। দেখুন bugzilla.mindrot.org/show_bug.cgi?id=1285
akostadinov

5

এটি করা যায় না ~/.ssh/configকারণ SendEnvওভাররাইড করা যায় না।

এলিয়াস ব্যবহার করা স্ক্রিপ্টগুলির জন্য কাজ করবে না যেগুলি এসএসএস কল করে।

একটি বিকল্প একটি ফাংশন রফতানি করা হয়। যেমন ~/.bashrc:

function ssh() {
    LANG="en_US.UTF-8" \
    LC_ADDRESS="$LANG" \
    LC_IDENTIFICATION="$LANG" \
    LC_MEASUREMENT="$LANG" \
    LC_MONETARY="$LANG" \
    LC_NAME="$LANG" \
    LC_NUMERIC="$LANG" \
    LC_PAPER="$LANG" \
    LC_TELEPHONE="$LANG" \
    LC_TIME="$LANG" \
    LC_ALL="$LANG" \
    /usr/bin/ssh $@
}
export -f ssh

1

বিকল্প আছে SetEnv, LANGএটি প্রেরণের আগে কেউ নির্দিষ্ট কিছু মানকে বাধ্য করতে পারে।

ম্যান পেজ বলে যে

পূর্ববর্তী সেট সেন্ডইনভ ভেরিয়েবলের নামগুলি পূর্বনির্ধারিত দিয়ে সাফ করা সম্ভব -

তবে আমি এই কাজটি পরিচালনা করতে পারি নি।


Bugzilla.mindrot.org/show_bug.cgi?id=1285 দেখুন , সম্ভবত এটি ব্যাখ্যা করবে কেন -পদ্ধতির কাজ হয়নি। রিমোট ল্যাং এবং এসএসএস কনফিগারেশনে অন্যান্য ভার্সকে হার্ডকোড করা ভাল পরামর্শ। জিনিসগুলি আরও অনুমানযোগ্য করে তোলে। সম্ভবত SetEnvএটি একটি নতুন নির্দেশিকা কারণ অন্য কেউ এ সম্পর্কে পরামর্শ দেয়নি। SetEnv LANG=en_US.UTF-8
আকস্তাদদিনভ

0

আপনি যদি ব্যাশ ব্যবহার করছেন তবে অন্যান্য সার্ভারগুলিতে পাস হওয়া ল্যাং অক্ষম করতে আপনি একটি উপন্যাস ssh = 'LANG = কমান্ড ssh' সেট আপ করতে পারেন।


0

আপনি su - youruserssh ওভার লগ ইন করা যখন আপনি ব্যবহার করতে পারেন । এটি ব্যবহারকারীর জন্য পরিবেশটিকে পুনরায়ায়ন করবে।

আসলে আপনি একটি নতুন পরিবেশের সাথে একটি নতুন অধিবেশন আরম্ভ করুন।


প্রশ্নটি স্বয়ংক্রিয়ভাবে পরিবেশকে বোঝার দরকার। এবং বিটিডব্লিউ সু সবসময় ইনস্টল করা হয় না। এবং আপনাকে su দিয়ে আপনার পাসওয়ার্ড টাইপ করতে হবে। দরকারী নয়। আরও সহজ কাজ আছে।
akostadinov

0

মতে man ssh:

 -F configfile
         Specifies an alternative per-user configuration file.  If a con-
         figuration file is given on the command line, the system-wide
         configuration file (/etc/ssh/ssh_config) will be ignored.  The
         default for the per-user configuration file is ~/.ssh/config.

সুতরাং, আপনি কমান্ড লাইনে (ডিফল্ট) কনফিগারেশন ফাইলটি স্পষ্টভাবে নির্দিষ্ট করে ( খালি রাখা ঠিক আছে ) নির্দিষ্ট করে মেনে/etc/ssh/ssh_config চলাতে পারবেন ~/.ssh/config:

$ touch ~/.ssh/config
$ ssh -F ~/.ssh/config your_user@your_host

আপনি এটির জন্য একটি নাম রাখতে পারেন ~/.bashrc:

alias ssh="ssh -F ~/.ssh/config"

ব্যাশ শেলটি পুনরায় আরম্ভ করুন, তারপরে আপনি সহজেই এইভাবে এসএসএস করতে পারেন:

$ ssh your_user@your_host

আমার মন্তব্য উপরে দেখুন। bugzilla.mindrot.org/show_bug.cgi?id=1285if one supplies on command line -F, then the system wide config is ignored according to man page থেকে ; এটি একটি বিকল্প তবে বাস্তবে পছন্দসই বৈশিষ্ট্য নয়।
akostadinov
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.