এসএসএইচ লগইনে কীভাবে কাস্টম .bashrc ফাইলটি ব্যবহার করবেন


21

আমি খুঁজে পেয়েছি যে আমি যে নতুন সংস্থার সাথে কাজ করছি তার সাথে আমার প্রায়শই অপেক্ষাকৃত স্বল্পকালীন জীবনকাল সহ লিনাক্স সার্ভার অ্যাক্সেস করতে হবে। এই সার্ভারগুলির প্রত্যেকটিতে আমার একটি অ্যাকাউন্ট রয়েছে তবে যখনই নতুন একটি তৈরি করা হয় তখন আমার আমার .bashrc এর মাধ্যমে স্থানান্তর করার ঝামেলা পেরিয়ে যেতে হয়। তবে এটি সম্ভব যে প্রায় এক মাসের মধ্যে সেই সার্ভারটি আর থাকবে না। আমার আরও অনেকগুলি সার্ভার অল্প সময়ের জন্য (মিনিট) অ্যাক্সেস করতে হয়েছিল যেখানে আমার .bashrc এর উপর স্থানান্তর করা ঠিক নয় তবে যেহেতু আমি প্রচুর সার্ভারে কাজ করছি তাই এটি অনেক সময় নষ্ট করে দেয়।

আমি সার্ভারগুলিতে কোনও পরিবর্তন করতে চাই না, তবে আমি ভাবছিলাম যে "প্রতি-সংযোগ" .bashrc করার কোনও উপায় আছে কিনা, তাই যখনই আমি কোনও সার্ভারে এসএসএইচ করতাম সে ক্ষেত্রে আমার সেটিংস ব্যবহার করা হত for

এটি যদি সম্ভব হয় তবে গিটকনফিগ ফাইলের মতো অন্যান্য কনফিগারেশন ফাইলগুলির সাথেও আমি একই জিনিসটি করতে পারতাম it


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

উত্তর:


6

আমি মনে করি আপনি যা চান তা (আপনি যে মেশিন থেকে সংযুক্ত হন তার আপনার .ssh / কনফিগারেশনে):

PermitLocalCommand yes
LocalCommand scp yourname@someserver:/dir/dotbash /local/home/dir/.bashrc

তারপরে আপনি এর সাথে নেতৃত্ব দিতে পারেন:

source .bashrc

এবং আপনার আনন্দের পথে হতে। লোকালকমন্ড আপনার আসল সেশনের ঠিক আগে সেখানে উপস্থিত হওয়ার সাথে সাথে আপনি যে সংগে সংযোগ করছেন সেটিতে কমান্ডটি কার্যকর করে।

আমি সার্ভারগুলিতে sshds এর সাথে কনফিগার করা আছে তা নিশ্চিত করব PermitLocalCommand yes

লোকালকমন্ড এটি আপনার নির্দিষ্ট পরিবেশে কাজ করার জন্য আপনি অনেকগুলি উপায় টুইট করতে পারেন - আপনি কোনও অভ্যন্তরীণ ওয়েব সার্ভার থেকে কার্ল করতে পারেন, বা উদাহরণস্বরূপ একটি এনএফএস মাউন্ট থেকে টানতে পারেন।


কয়েক নোট। প্রথমত, আমি মনে করি আপনি scp কমান্ডের ফাইলগুলির ক্রমটি স্যুইচ করেছেন, যেহেতু আমি আমার বাশটি সার্ভারে স্থানান্তর করতে চাই এবং আমার মনে হয় আপনি এটি বিপরীত করেছেন। দ্বিতীয়ত, আপনি ; source /path/to/.bashrcস্বয়ংক্রিয়ভাবে উত্সাহ পেতে scp কমান্ডের পরে যুক্ত করতে পারেন। অবশেষে, এই পদ্ধতির একটি খুব গুরুত্বপূর্ণ নেতিবাচক নয় যে আমাকে দুবার আমার পাসওয়ার্ড টাইপ করতে হবে। কিন্তু শেষ পর্যন্ত এটি কাজ করেছে, তাই ধন্যবাদ।
gsingh2011

এর জন্যে দুঃখিত! আমার মাথা থেকে কাজ করা ছিল, তাই মিশ্রণ সম্পর্কে দুঃখিত। আপনি কি আপনার পরিবেশে পাসওয়ার্ডহীন কী সেটআপ সেট আপ করতে পারবেন? আমাদের পরিবেশে এটি আছে এবং এটি একটি সুন্দর জিনিস। খুশি যে কাজ যদিও!
কুইন মারফি

@ gsingh2011: আপনি যে source /path/to/.bashrcমেশিনটি সংযোগ করছেন তার উপর এটি কার্যকর করা হবে। কমান্ডগুলির মধ্যে LocalCommandssh সেশনে অ্যাক্সেস নেই।
অলিভার

@ অলিভার আপনি ঠিক বলেছেন আমি দূরবর্তী কম্পিউটার থেকে .বাশার্কের স্যোসিংটি স্বয়ংক্রিয় করার জন্য স্থির করেছি। প্রথম লগইনে আমাকে সার্ভার সাইডে কয়েকটি জিনিস পরিবর্তন করতে হবে তবে আমার যা করা উচিত তার চেয়ে এটি অনেক বেশি সুবিধাজনক।
gsingh2011

16

আমার মনে হয় sshrc হ'ল আপনি যা খুঁজছেন: https://github.com/Russell91/sshrc

sshrc ঠিক ssh এর মতোই কাজ করে তবে এটি দূরবর্তীভাবে লগ ইন করার পরে sources / .sshrc সূত্রও দেয়।

$ echo "echo welcome" > ~/.sshrc
$ sshrc me@myserver
welcome

$ echo "alias ..='cd ..'" > ~/.sshrc
$ sshrc me@myserver
$ type ..
.. is aliased to `cd ..'

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


শুধুমাত্র লিংক পোস্টের সাথে স্প্যামিং বন্ধ করুন। আপনি মন্তব্য যুক্ত করতে পুরোপুরি সক্ষম (যা আপনার sshrc- সম্পর্কিত পোস্টগুলি যাইহোক)।
হরিণ হান্টার

3
আমি তাদের সব ঠিক করার কাজ করছি!
রাসেল স্টেওয়ার্ট

সম্পন্ন. প্রথমবারে আমি একটি সংক্ষিপ্ত লিঙ্ক-কেবল পোস্ট করার প্রলোভন পেয়েছি। এখন আমি আরও ভাল জানি।
রাসেল স্টাওয়ার্ট

1
আমি অনেক আগে লিখেছি (এসএসসিআরসি এর আগে) একটি সিমিল এসএসসিআরকি: github.com/fsquillace/pearl-ssh এটি কেবল আরও দক্ষ, ছোট এবং কোনও এক্সএক্সডি নির্ভরতা ছাড়াই।
ব্যবহারকারী 967489

1

আপনি যদি সার্ভারের আগে কখনও আঘাত না করেন তবে এর জন্য ~ / .ssh / known_hosts এ কোনও প্রবেশ থাকবে না।

আপনি "ssh-keygen -F" দিয়ে একটি প্রদত্ত পরিচিত হোস্টের সন্ধান করতে পারেন, তবে আপনাকে সেই আউটপুট (গ্রেপ) পরীক্ষা করতে হবে যেহেতু ssh-keygen মিসের জন্য মিথ্যা না ফেরায়। মনে রাখবেন যে আপনি যদি পৃথক সনাক্তকারী (আইপি ঠিকানা, হোস্টনাম, এফকিউডিএন) দ্বারা কোনও হোস্টকে উল্লেখ করেন তবে এগুলিকে পৃথক দৃষ্টান্ত হিসাবে বিবেচনা করা হবে।

আপনি ssh এর জন্য একটি মোড়ক লিখতে পারেন যা আপনার ব্যবহারকারীর পরিবেশটিকে প্রথম লগইনে সেই হোস্টে স্থানান্তরিত করে:

ssh-newenv () {যদি! ssh-keygen -F $ 1 | grep -q "^ # হোস্ট $ 1 পাওয়া গেছে:"; তারপরে rsync ~ / .bashrc ~ / .Bash_profile ~ / .bash_logout $ 1:; ফাই; ssh $ 1; }

আপনি যদি এটিকে আরও দৃust় করতে চান তবে আপনি দূরবর্তী হোস্টের একটি পরিচিত পরিবেশের ফাইল, হ্যাশ বা অন্যান্য চিহ্নিতকারী উপস্থিতির জন্য পরীক্ষা করতে পারেন।


0

আমি জানি না প্রতি সেশন .bashrc আছে কিনা।

আরেকটি সমাধান হ'ল একটি ছোট স্ক্রিপ্ট লিখতে হবে যা আপনার সমস্ত প্রিয় কনফিগারেশনগুলি আপনার নতুন হোম ফোল্ডারে স্থানান্তর করে।

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

মত

/home/foobar/configs/.bashrc
/home/foobar/configs/.foo/bar.conf
...

এবং তারপরে ক

scp -r /home/foobar/configs/* foo@example.com:/home/foo/

যা সময় সাশ্রয় করে।


0

আমি মনে করি না সম্ভব, প্রদত্ত SSH আপনার সঙ্গে কিছুই করার আছে কি .bashrc। এটি শেল যা এই ফাইলটি লোড করে, ssh নয়।

কিছু ধারণা:

  1. আপনি প্রথম লগ ইন করার পরে আপনার দূরবর্তী হোম ডিরেক্টরি সেট আপ করুন।
  2. প্রতিটি সার্ভারে আপনার .bashrc সম্বলিত আপনার হোম ডিরেক্টরিটি মাউন্ট করতে এনএফএস ব্যবহার করুন। এইভাবে, আপনার সর্বত্র একই সেটিংস রয়েছে।
  3. আপনি যদি রিমোট সার্ভারগুলিতে সঞ্চারিত কিছু পরিবেশের ভেরিয়েবলগুলির সাথে ঠিক থাকেন তবে আপনার SendEnvবিকল্পটি পরীক্ষা করা উচিত ( ssh_configআরও তথ্যের জন্য ম্যান পৃষ্ঠাটি দেখুন)। যদি সার্ভারটি সঠিকভাবে সেট আপ করা থাকে (যেমন এতে AcceptEnvsshd_config পর্যাপ্ত পরিমাণ রয়েছে), আপনি SendEnvআপনার পরিবেশের ভেরিয়েবলগুলি দূরবর্তী হোস্টে অনুলিপি করতে ব্যবহার করতে পারেন ।
  4. এটি কাজ করে কিনা তা আমি জানি না, তবে আপনি দূরবর্তী হোস্টের সাথে সংযোগ স্থাপনের আগে আপনার বা অন্য ফাইলগুলি প্রেরণের জন্য ProxyCommandসেটিংটি ( ssh_configম্যান পৃষ্ঠা দেখুন) ভুল ব্যবহার করতে পারেন .bashrc। যদিও এর জন্য কিছু পরীক্ষার প্রয়োজন হবে। এছাড়াও, প্রস্তুত থাকুন যাতে এটি স্কিপিতে হস্তক্ষেপ করতে পারে।

0

আমি মনে করি https://github.com/fsquillace/pearl-ssh আপনার যা প্রয়োজন তা করে।

আমি sshrc জন্মের অনেক আগে এটি লিখেছিলাম এবং এসএসসিআরসি এর তুলনায় এর আরও সুবিধা রয়েছে:

  • এটি উভয় হোস্টের জন্য xxd এর উপর নির্ভরতা প্রয়োজন হয় না (যা দূরবর্তী হোস্টের জন্য অনুপলব্ধ হতে পারে)
  • পার্ল-এসএসএস আরও কার্যকর এনকোডিং অ্যালগরিদম ব্যবহার করে
  • এটি কোডের মাত্র 20 ডলার লাইন (বুঝতে পারা সত্যিই সহজ!)

এই ক্ষেত্রে:

$> echo "alias q=exit" > ~/.config/pearl/sshrc
$> ssh_pearl myuser@myserver.com
myserver.com $> q
exit
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.