.এস.এফ.এফ। / প্রোফাইলে / .বাশ্রাকের সমতুল্য


14

আমি যে কোনও সার্ভারে যাচ্ছি তাতে আমার সেশনের অভ্যন্তরে কিছু উপকরণ স্বয়ংক্রিয়ভাবে সংজ্ঞায়নের জন্য একটি উপায় অনুসন্ধান করছি। আমি সেগুলি .bashrcফাইলগুলিতে সার্ভারে রাখতে পারি না কারণ আমি যে ব্যবহারকারী অ্যাকাউন্টগুলির সাথে লগ ইন করেছি সেগুলি অন্য লোকেরা ভাগ করে নিয়েছে এবং এ ছাড়াও তাদের কয়েক ডজন রয়েছে এবং প্রতিটি মেশিনে স্ক্রিপ্ট বজায় রাখা বেদনাদায়ক হবে। আমি জানি আমি expectস্বয়ংক্রিয়ভাবে এলিয়াসগুলি টাইপ করতে পারি তবে আমি কেবল ভাবছিলাম যে ওপেনএসএসএইচ-তে বিল্ট-ইন এমন কিছু রয়েছে যা সম্ভবত এটি অর্জনের জন্য ব্যবহার করা যেতে পারে?

উত্তর:


7

প্রত্যাশায় এটি করাতে কোনও ভুল নেই। অন্য যেভাবে আমি এটি করেছি তাও বেশ নোংরা, একটি স্ক্রিপ্টের সাহায্যে প্রথমে আপনি যে প্রোফাইলটি চালাতে চান তা স্ক্যাপ করুন, তারপরে এসএসএস করুন, এটি চালান এবং সংযুক্ত থাকুন।

সুতরাং, সমস্ত ফাইল সেটিংস স্থানীয় ফাইলে রাখুন .<local username>-<hostname>-init.shএবং দূরবর্তী হোস্টে লগ ইন করতে নীচের স্ক্রিপ্টটি চালান।

#!/bin/sh
[ $# -eq 0 ] && { echo "syntax: $0 <host> [<ssh-option>...]" 1>&2 ; exit 1 ; }
host=$1 ; shift    # use any remaining args as ssh options
initfile=".$USER-`hostname`-init.sh"
scp -q ~/.ssh-init.sh "$host:/var/tmp/$initfile"
ssh -t "$@" $host "bash --rcfile /var/tmp/$initfile"

আমি এটি পছন্দ করি কারণ এটির জন্য সার্ভারে কোনও বিশেষ কনফিগারেশন প্রয়োজন হয় না, দুর্দান্ত!
রমন

4

আপনি আপনার কনফিগারেশনটি এতে রেখে দিতে পারেন .bashrcএবং লগ ইন করার সময় কেবলমাত্র তাদের সম্পাদন করতে পারেন this এটি সম্ভব করার জন্য আপনি এসএসএসের মাধ্যমে একটি পরিবেশের পরিবর্তনশীল পাস করতে পারবেন।

.bashrc পরিবর্তন

# common stuff
if [ -n "$IAMTHEGREATEST" ]; then
  # my personal cool stuff
fi;
# other global stuff

sshd_config পরিবর্তন:

AcceptEnv ... IAMTHEGREATEST

.ssh/config পরিবর্তনসমূহ (ক্লায়েন্ট পক্ষ):

Host ...
  SendEnv IAMTHEGREATEST

.bashrc পরিবর্তনসমূহ (ক্লায়েন্ট পক্ষ):

alias ssh='IAMTHEGREATEST="forsure" ssh'

(অনির্ধারিত, তবে করা উচিত)


এটি কোনও সার্ভারে স্বয়ংক্রিয়ভাবে জিনিসগুলি সেট আপ করার উদ্দেশ্যটি কীভাবে ওপি লগ ইন করে?
ওম্বল

এটা না. এটি "আমি যে ব্যবহারকারীদের সাথে লগ ইন করেছি সেগুলি অন্য লোকেরা ভাগ করে
নেবে

এটি প্রায় আমি যা করি ঠিক তেমনই তবে একটি পার্থক্যের সাথে - বাইরে থেকে পরিবেশের পরিবর্তনশীলটি গ্রহণ না করে আমি নিজেই এটি এসএসএইচ কীতে সেট করেছিলাম। এর অর্থ হ'ল .ssh / अधिकृत_keys এ এনভায়রনমেন্ট = "IAMTHEGREATEST = forsure" এসএসএস-ডিএসএস দিয়ে শুরু লাইনগুলি অন্তর্ভুক্ত করে ...
ব্রোন গন্ডওয়ানা

3

থেকে SSH (1) man পৃষ্ঠা, যদি আপনি একটি ফাইল তৈরি ~ / .ssh / RC , এটা আগে ব্যবহারকারীর লগইন শেল নির্বাহিত হলে যার ফলে লগ ইন করার আগে 'প্রাক সেটআপ' কাজগুলো করার সুযোগ দান মৃত্যুদন্ড কার্যকর করা হবে .. প্রদত্ত উদাহরণটি লগ ইন করার আগে নেটওয়ার্ক শেয়ারগুলি মাউন্ট করা ছিল।

আপনি যদি পৃথক । / .Ssh / আরসি ফাইলগুলি ব্যবহার করতে না চান তবে আপনি / etc / ssh / sshrc এর মাধ্যমেও এটি করতে পারেন । আপনার নির্দিষ্ট ব্যবহারকারীর নাম বা কিছু সনাক্তকারী পদ্ধতি যাচাই করার জন্য একটি দ্রুত পরীক্ষা অন্যদের এটির স্থানে ছিল তা লক্ষ্য করা থেকে বিরত রাখতে পারে।

/ etc / ssh / sshrc কেবলমাত্র সোর্স করা হয় যদি ~ / .ssh / আরসি বিদ্যমান না থাকে, তাই আপনি কার্যকরভাবে জটিলতার দুটি স্তর অর্জন করতে পারেন।



মিস করলাম যে! এটি আবেদনময়ী দেখায়, এটির জন্য এখনও প্রতিটি সার্ভার পৃথকভাবে সেটআপ করা প্রয়োজন কারণ এটি সার্ভার-সাইডে ডানদিকে রয়েছে?
রমন

হ্যাঁ, সার্ভার সাইড, তবে আপনাকে একবারে একবারে একটি ফাইল স্কিপ করতে হবে। লগইন করার সাথে সাথে প্রক্রিয়া করার জন্য কমান্ডগুলির একটি স্ট্রিম প্রেরণ করার সত্যিই সহজ উপায় নেই। Rin গ্রিন} যদিও আমাকে কিছু দিন, সম্ভবত কিছু লিখুন ... today আজ নয়!}
লার্নিক্স

2

এলিয়াসগুলি শেল দ্বারা সংজ্ঞায়িত এবং ব্যাখ্যা করা হয়।

দুর্ভাগ্যক্রমে sshএগুলি দূরবর্তী শেলের কাছে যাওয়ার কোনও উপায় নেই ।

আপনি sshক্লায়েন্ট সাইডে একটি মোড়ক লিখতে পারেন যা দূরবর্তী দিকের একটি সুন্দর পরিবেশ স্থাপন করে, তবে এটি সুন্দর হবে না।


0

যদি সম্ভব হয় তবে আমি একটি ছোট স্ক্রিপ্ট সংরক্ষণ করব যা সর্বত্র থেকে অ্যাক্সেসযোগ্য সার্ভারে আপনি যা চান তা শুরু / সংজ্ঞায়িত করে এবং প্রতিটি সার্ভারে লগইন করার পরে এটি কার্যকর করে।


0

এর একটি সম্ভাব্য সমাধান হ'ল আপনার স্ক্রিপ্টটি এমন একটি ওয়েবসারভারে সেট আপ করা যা অন্য সমস্ত সার্ভার অ্যাক্সেস করতে পারে।

তারপরে প্রতিটি সার্ভারের মতো কিছু করার জন্য একটি ছোট স্ক্রিপ্টের প্রয়োজন:

wget http://myserver.com/myawesomescript.sh
chmod +x myawesomescript.sh
./myawesomescript.sh

এইভাবে আপনাকে কেবল এটি এক জায়গায় আপডেট করতে হবে।


-3

.Ssh / কনফিগারেশন দেখুন

এখানে একটি উদাহরণ https://lookherefirst.wordpress.com/2007/12/17/a-simple-ssh-config-file/


আপনি কেন মনে করেন এটি সহায়তা করবে সে সম্পর্কে দয়া করে আরও বিশদ সরবরাহ করুন।
জোড়দাছে

আমরা সত্যিই পছন্দ করি যে উত্তরে সামগ্রীগুলিতে নির্দেশক নয় এমন সামগ্রী রয়েছে। যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
ব্যবহারকারী 9517
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.