Ssh কনফিগারেশন ফাইল ব্যবহার করে একটি রিমোট কমান্ড চালান


32

আমি সার্ভারে টাইপ করার প্রয়োজন ছাড়াই ssh লগইন চালানোর জন্য একটি কমান্ড সেটআপ করতে সক্ষম হতে চাই। মূলত আমি ssh কনফিগারেশন ফাইলের সমতুল্য খুঁজছি:

ssh host command

যাতে আমার যা টাইপ করা দরকার তা হ'ল:

ssh host

এবং কমান্ড চালানো হয়।

উত্তর:


16

আপনার অনুমোদিত কী ফাইলগুলিতে একটি কমান্ড সন্নিবেশ করাও সম্ভব। ( ~/.ssh/authorized_keys)। এটি আপনাকে ফাইলের প্রতিটি কি-র জন্য একটি কাস্টম কমান্ড কার্যকর করতে সহায়তা করে। আমি আমার ফায়ারওয়ালের মাধ্যমে শেল সংযোগগুলি ফরোয়ার্ড করতে এটি ব্যবহার করি। ফলাফলটি হ'ল আমি একটি হোস্টের কাছে এসএসএস করতে পারি এবং এটি স্বয়ংক্রিয়ভাবে সেশনটিকে নেটওয়ার্কের অভ্যন্তরে একটি হোস্টের সাথে সংযুক্ত করে। authorized_keysএন্ট্রি ভালো দেখায়:

command="ssh -Tq <hostname> \"$SSH_ORIGINAL_COMMAND\"",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAA... the rest of the key ...

আরও নির্দিষ্টভাবে পুনর্নির্দেশটি আমার গিটোলাইট উদাহরণের জন্য। এটি গিটোলাইট হোস্টকে কোনও বাহ্যিক অ্যাক্সেসে সরাসরি প্রকাশ না করে সহজ বাহ্যিক অ্যাক্সেসের অনুমতি দেয়। আরও তথ্যের জন্য ম্যান পৃষ্ঠাটি দেখুন। ( http://linux.die.net/man/8/sshd )


1
এটি দুর্দান্ত, আপনি জানেন না যে আপনি এটি করতে পারেন। +1
ব্রায়ান উইগিংটন

3
যদি আপনি কমান্ডটি আপনার অনুমোদিত_কিজি ফাইলটিতে রাখেন তবে এটি rsync এবং scp এর মতো জিনিসগুলি ভেঙে ফেলবে - আপনি এর মতো কিছু পাবেন: ওপেন টার্মিনাল ব্যর্থ হয়েছে: টার্মিনাল নয়। এছাড়াও, সচেতন হন যে কমান্ডটি ব্যর্থ হলে আপনি লগইন করতে পারবেন না। আমি এই কঠিন উপায় আবিষ্কার করেছি।
জন হান্ট

11

আপনি যদি ওপেনএসএইচএইচ চালিয়ে যাচ্ছেন তবে দেখে মনে ~/.ssh/rcহচ্ছে লগইন করার পরে এটি কার্যকর করা হয়েছে


3
হয় /.ssh/rcক্লায়েন্ট বা সার্ভার মেশিনে অবস্থিত? সার্ভারের ডক্স থেকে মনে হচ্ছে, তাইনা?
ভার্চুড

1
হ্যাঁ, এটি সার্ভার মেশিনে থাকবে।
কনস্লেয়ার

দুর্ভাগ্যক্রমে rcফাইলটি চালাতে ব্যর্থ হয়েছে বলে মনে হচ্ছে screen, "একটি টার্মিনালের সাথে অবশ্যই সংযুক্ত থাকা আবশ্যক" একটি ত্রুটি পেয়েছে
ডেভিডপর্ক 21 मे

10

আপনি একটি বাশ ওরফে সেট আপ করতে পারেন।

আপনার .bashrc ফাইলে, রাখুন:

alias ssl='ssh some_host run_command'

তারপরে আপনাকে এমনকি হোস্টনামটি টাইপ করতে হবে না।

অথবা, আপনি যদি একাধিক হোস্টের সাথে এটি করতে চান (এবং একাধিক উপকরণ কাজ করবে না), তবে একটি ছোট স্ক্রিপ্ট ব্যবহার করুন:

kevin@box:~$ cat ssl.sh
#!/bin/sh
ssh $1 some_command
kevin@box:~$

2

আপনি ঠান্ডা এটি সমাধান করুন আপনার .ssh/config file, হোস্টের জন্য যেখানে আপনি কোনও কমান্ড কার্যকর করতে চান সেখানে যুক্ত করুন

  RequestTTY yes
  RemoteCommand <some command>

<some command>তোমার আদেশ কোথায় ? এটি স্ক্রিন বা tmux এর সাথেও কাজ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.