Ssh সংযোগের পরে সার্ভারে স্বয়ংক্রিয়ভাবে স্ক্রিপ্টগুলি চালান


11

ক্লায়েন্ট সিস্টেমটি সার্ভারের সাথে ssh সংযোগ স্থাপনের পরে শীঘ্রই সার্ভারে কীভাবে কোনও স্ক্রিপ্ট স্বয়ংক্রিয়ভাবে চালানো যায়

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

সার্ভার সিস্টেমে স্ক্রিপ্টটি কীভাবে স্বয়ংক্রিয়ভাবে চালানো যায়?


উত্তর:


14

আপনি আপনার কনফিগার ফাইলে (/ etc / ssh / sshd_config) নিম্নলিখিত প্যারামিটার যুক্ত করে এটি করতে পারেন।

 ForceCommand
         Forces the execution of the command specified by ForceCommand, ignoring any command supplied by the client and ~/.ssh/rc if present.  The command is invoked by using the user's login shell
         with the -c option.  This applies to shell, command, or subsystem execution.  It is most useful inside a Match block.  The command originally supplied by the client is available in the
         SSH_ORIGINAL_COMMAND environment variable.  Specifying a command of “internal-sftp” will force the use of an in-process sftp server that requires no support files when used with
         ChrootDirectory.

অন্য একটি বিকল্প হ'ল প্রতি ব্যবহারকারী ভিত্তিতে .ssh / rc ফাইলগুলি ব্যবহার করা।

ফোর্সকম্যান্ড পদ্ধতিটি ব্যবহার করতে আপনি কেবল ForceCommand /usr/bin/ownscriptফাইলের নীচে /etc/ssh/sshd_config(সার্ভারে) যুক্ত করুন add

স্ক্রিপ্টটি এর মতো দেখাচ্ছে:

#!/bin/bash
#Script file for ssh
#
#put your commands here
echo "test" > /tmp/test.txt
#
#exit by calling a shell to open for the ssh session
/bin/bash

স্ক্রিপ্ট chmod করতে ভুলবেন না sudo chmod +x /usr/bin/ownscript


উত্তর করার জন্য ধন্যবাদ. আপনি দয়া করে একটি উদাহরণ কমান্ড দিতে পারেন
উত্সাহী

তবে ফোর্স কমান্ড সার্ভারে কমান্ড কার্যকর করতে পারে (অ্যাডমিন লগইন) অথবা ক্লায়েন্ট লগইনে? আমি সার্ভার লগইনে কমান্ড কার্যকর করতে চাই
উত্সাহী

1
কমান্ডটি সার্ভারে জারি করা হয়। আপনার কনফিগারেশনের নীচে কেবল ফোরামকমন্ড /পথ / কম্যান্ড.স্ক্রিপ্ট যুক্ত করুন কৌশলটি করবে। তবে, আমি মুখোমুখি হয়েছি এটি কেবল এই আদেশটি কার্যকর করবে তাই আপনার স্ক্রিপ্টফাইলে আপনাকে শেল শুরু করা দরকার to আরও ভাল পাঠযোগ্যতার জন্য আমি আমার মূল উত্তরের একটি উদাহরণ যুক্ত করব।
Requist

ধন্যবাদ. আমি কি শেল স্ক্রিপ্টের পরিবর্তে পাইথন স্ক্রিপ্ট চালাতে পারি?
উত্সাহিত

ধরুন আমি আমার কাস্টম কমান্ডটি কার্যকর করেছি, আইপি ঠিকানা এবং ব্যবহারকারীর লগইন নামটি পুনরুদ্ধার করার কোনও উপায় আছে (আমি জানতে চাই যে কোন লগিনের কারণে আমার কমান্ড কার্যকর হয়েছে?
উত্সাহিত

4

আপনি একটি /etc/ssh/sshrcফাইল তৈরি করতে পারেন । দেখুন man 8 ssh। আপনি যদি এটি কোনও একক ব্যবহারকারীর জন্য চান তবে ব্যবহার করুন ~/.ssh/rc

এখানে একটি নমুনা /etc/ssh/sshrcযা আপনাকে আপনার মেশিনে লগ ইন করলে ডিবিবাসের মাধ্যমে আপনাকে অবহিত করবে। ভুলে যাবেন না chmod +x:

#!/bin/bash

ip=`echo $SSH_CONNECTION | cut -d " " -f 1`

notify-send -u CRITICAL "SSH connection from ${ip}" "User $USER just logged in from $ip"

1

লগনের সময় কোনও স্ক্রিপ্ট কার্যকর করার জন্য, / etc / প্রোফাইল স্ক্রিপ্টের মধ্যে থেকে একটি কল হিসাবে এটি যুক্ত করুন। এটি কেবলমাত্র ssh লগনের জন্য নয়, প্রতিটি লগনের জন্যই কার্যকর করা হয়।


আমি কেবল এসএসএস সংযোগ ব্যবহার করে সংযুক্ত ক্লায়েন্ট সিস্টেমগুলি সম্পর্কে উদ্বিগ্ন
উত্সাহিত

1
সমস্ত শেল উত্স / ইত্যাদি / প্রোফাইল হিসাবে ব্যবহারকারীদের আলাদা শেল থাকলে এটি ধারাবাহিকভাবে কাজ করবে না।
bschlueter
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.