ssh_config: লগইন করার পরে রিমোট মেশিনে চালিত করার জন্য কমান্ড নির্দিষ্ট করুন


16

এটি আমার আগের প্রশ্নের সম্প্রসারণ । Ssh লগইন করার পরে আমার একটি দূরবর্তী মেশিনে স্থানীয়ভাবে সঞ্চিত কমান্ডটি (যেমন mount /home) চালানো দরকার । এই মুহুর্তে, আমি ব্যবহার করছি:

ssh -t mymachine.example.com 'mount /home ; /bin/bash'

যা ভাল কাজ করে, তবে আমি ভাবছিলাম যে আমি এই আদেশটি আমার মধ্যে রাখতে পারি .ssh/configযাতে আমাকে প্রতিবার এটি টাইপ না করতে হয়। আমি একটি LocalCommandবিকল্প পেয়েছি , কিন্তু আমি কোনও RemoteCommandবিকল্প দেখতে পাচ্ছি না ।

এটি command-to-be-executedআমদানি করা হয় যে স্থানীয় মেশিনে সংরক্ষণ করা হবে, কারণ এতে কোনও এনক্রিপ্টড ডিস্ক খোলার জন্য পাসওয়ার্ড থাকবে। এই কারণেই আমি কমান্ডটি .profileদূরবর্তী মেশিনে রাখতে পারি না।

উত্তর:


6

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

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

এটি সম্ভবত নিরাপদ নয়। যদি আমি একটি echoকমান্ডটি ssh কমান্ড হিসাবে ব্যবহার করি তবে psএটি দূরবর্তী সার্ভারে প্রদর্শিত হবে:

martin@martin ~ % ssh dev2 "echo hello; ps aux|grep echo"

hello
root     25358  0.0  0.0   5848  1296 ?        Ss   11:27   0:00 bash -c echo hello; ps aux|grep echo
root     25362  0.0  0.0   5012   828 ?        S    11:27   0:00 grep echo

ধন্যবাদ, তবে সুপারউজারের সমাধানে ~/.ssh/rcআবার রিমোট মেশিনে সংরক্ষণ করা হয়। psআমার কমান্ড লাইন প্যারামিটারগুলি (পাসওয়ার্ড সহ) দেখানো সম্পর্কে আপনার মন্তব্য সম্পর্কে , এটি আমাকে বিরক্ত করে না। এটি এমন রিমোট মেশিন যা আমি বিশ্বাস করি না। আমার স্থানীয় মেশিনটি কেবলমাত্র আমারাই ব্যবহৃত হয়, তাই অন্য কারও অ্যাক্সেস নেই ps
মার্টিন ভেজিটার

6
যে psআউটপুট হয় দূরবর্তী মেশিন থেকে। মুল বক্তব্যটি: আপনি sshরিমোট কমান্ড হিসাবে সরবরাহ করেন এমন সমস্ত কিছুই ইন রিমোট সার্ভারে প্রদর্শিত হবে ps
মার্টিন ভন উইট্টিচ

1
হ্যাঁ তুমিই ঠিক. এই বিষয়টি চিহ্নিত করার জন্য ধন্যবাদ.
মার্টিন ভেজিটার

1
@ মার্টিনভনউইটিচ - প্রতিটি এসই সাইট স্বতন্ত্র তাই প্রতিটি সাইটের পক্ষে একই ধরণের Q এবং A এর এত দীর্ঘ সময় রাখা উচিত যেহেতু তারা সেই নির্দিষ্ট সাইটের জন্য বিষয়টিতে রয়েছে। যদি কোনও প্রশ্ন আসে এবং অন্য এসই সাইটে এ থাকে তবে বিষয়বস্তু অনুলিপি করতে উত্সাহিত করা হবে। এটি যথাযথ হিসাবে কাস্টমাইজ করুন যাতে এটি বিষয় হয়।
SLM

7

এটি ওপেনএসএসএইচ 7.6 এ যুক্ত হয়েছিল:

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

রেফ: https://www.openssh.com/txt/release-7.6



2

আপনি নিম্নলিখিত হিসাবে দূরবর্তী মেশিনের সহযোগিতা দিয়ে এটি করতে পারেন।

আপনার স্থানীয় মেশিনে, পরিবেশের ভেরিয়েবলটিতে চালানোর জন্য কমান্ডটি পূরণ করুন LC_SSH_INITIAL_COMMAND। এসএসএইচ সাধারণত ফর্মের সমস্ত পরিবেশের ভেরিয়েবলগুলি পাস করার জন্য কনফিগার করা হয় LC_*কারণ সেগুলি সাধারণত স্থানীয়ভাবে সেটিংস হয়।

রিমোট মেশিনে, eval "$LC_SSH_INITIAL_COMMAND" প্রতি-কী সেটিংসের মধ্যে~/.ssh/authorized_keys বা থেকে চালনা করুন~/.ssh/rc (সাবধান হন যে আপনার কাছে যদি কোনও ~/.ssh/rcফাইল থাকে তবে আপনাকে xauthএক্স 11 ফরোয়ার্ডিংয়ের জন্য ম্যানুয়ালি চলমান যত্ন নিতে হবে )।

সঙ্গে authorized_keys(; আপনি অন্তত ফাঁদ hup সংকেত তাই এ আপনার কমান্ড এমনকি সংযোগ মারা গেলে কার্যকর উচিত নয় যদি না শেল প্রক্রিয়া হঠাৎ মারা যায়) পদ্ধতি, আপনি একভাবে কমান্ড যখন, SSH সেশন থেকে প্রস্থান রান করতে পারেন।

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


0

আমি এটি চেষ্টা করি নি তবে একটি পদ্ধতির হতে পারে

  • Subsystemরিমোটে sshd_configএমন একটি ঘোষণা করুন যা কিছু এনভির ভার্স পড়ে আপনি যে আদেশটি চান তা কার্যকর করে
  • দূরবর্তী সার্ভারে এই জাতীয় কীগুলি পাস করার SendEnvজন্য স্থানীয় ব্যবহার করুন.ssh/config
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.