.ssh / config এ পাসওয়ার্ড যুক্ত করা হচ্ছে


24

আমি উবুন্টু 12.04 ব্যবহার করছি। আমি প্রতিদিন অনেকগুলি সার্ভারের সাথে সংযোগ করার জন্য এসএসএস ব্যবহার করছি, তাই আমি তাদের পরামিতিগুলি .ssh / কনফিগারেশন ফাইলে রেখেছি ; এটার মত :

Host server1
User tux
Port 2202
HostName xxx.x.xx.x

প্রতিটি সংযোগের জন্য এই ফাইলটিতে পাসওয়ার্ড দেওয়ার কোনও উপায় আছে কি? সুতরাং যখন সার্ভারটি একটি পাসওয়ার্ড জিজ্ঞাসা করে, টার্মিনালটি তার পাস রাখে এবং এটি সার্ভারে প্রেরণ করে, তাই প্রতিবার আমার পাসওয়ার্ড টাইপ করার দরকার নেই। এছাড়াও, আমি পাবলিক / প্রাইভেট কী জুটি ব্যবহার করতে চাই না।


10
এই কিপায়ার জন্য হয়।
মাইকেল হ্যাম্পটন

উত্তর:


31

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

মাইকেল যেমন বলেছিল, আপনি অবশ্যই পাসওয়ার্ডহীন প্রমাণীকরণের জন্য কীপ্লেগুলি ব্যবহার করতে চান, প্রাইভেট কীটি ফাইলে অনেক বড় পাসওয়ার্ড।


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

1
বেশ নিরাপদ। সেই ফাইলটিকে শক্ত ফাইলের অনুমতি সহ লক করার জন্য কেবলমাত্র সেই স্ক্রিপ্টটিতে পরামর্শ দেওয়া।
ড্যানিলা লাডনার

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

আপনার ক্লায়েন্টদের শিক্ষিত করুন। পাসওয়ার্ড প্রমাণীকরণ অক্ষম করা এবং বিপরীত কেবল যে কী অনুমতি দেয় সেগুলিতে এটি ব্যাখ্যা করুন।
নিকিতা কিপরিয়ানভ

20

মন্তব্যের স্ট্রিং এড়ানোর জন্য: হ্যাঁ, এটি অনিরাপদ (এমনকি যুক্তিযুক্তভাবেও সুরক্ষিত নয়)। আমি আপনাকে দৃ recommend়ভাবে সুপারিশ করব এটি কেবলমাত্র একটি বিচ্ছিন্ন নেটওয়ার্কের একটি ল্যাব পরিস্থিতি বা একটি সম্পূর্ণ পরিস্থিতি বা বিন্যাস ছাড়াই উত্পাদন সার্ভার বা সম্ভাব্য উত্পাদন সার্ভারের সাথে জড়িত না এমন একটি অচেনা পরিস্থিতিতে do

আমি এটি সেট আপ করতে চেয়েছিলাম কারণ আমার 2950 স্যুইচটি ব্যক্তিগত / পাবলিক কী সমর্থন করে বলে মনে করি না এবং আমি আশা করি যে কোনও সময় এই জ্ঞানটি পাব, তবে আমি এখনও সেখানে নেই।

একটি উপাধি এবং sshpass ব্যবহার করে এটি সম্পন্ন করা যেতে পারে।

  1. এসএসপাস ইনস্টল করুন
  2. প্রশ্নের তালিকাভুক্ত হিসাবে ব্যবহারকারীর নাম অন্তর্ভুক্ত করতে আপনার .ssh / config ফাইলটি পরিবর্তন করুন ter
  3. আপনার টার্মিনালে একটি উপনাম যুক্ত করুন (আমি .bashrc ব্যবহার করেছি এবং গ্লোবাল সেটিংসের বিরুদ্ধে সুপারিশ করব)
  4. লক্ষ্য লগ ইন করতে উপনাম ব্যবহার করুন

আমার উদাহরণটির নাম:

alias ssc='sshpass -pcisco ssh'

যেখানে "সিসকো" হচ্ছে পাসওয়ার্ড। নোট করুন -p এবং পাসওয়ার্ডের মধ্যে কোনও স্থান নেই।

ব্যবহার হ'ল (প্রশ্নটি উল্লেখ করে):

ssc server1

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


একমাত্র সম্ভাব্য কাজ, যখন আপনি যে কোনও কারণে কীগুলির সাথে সত্যই কাজ করতে পারবেন না।
sjas

কাজ করে! অসাধারণ.
রাহুল

আমি একটি সম্পূর্ণ শেল স্ক্রিপ্ট দ্বারা ওরফে প্রতিস্থাপনের পরামর্শ দেব; যা হোস্ট প্যারামিটারের উপর নির্ভর করে কোন পাসওয়ার্ড ফাইলটি গতিশীলভাবে নির্বাচন করার সুযোগ দেবে।
7heo.tk

কেউ
পি

10

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

প্রথমে আপনার কী তৈরি করুন:

ssh-keygen

তারপরে আপনার সার্ভার / ডেস্কটপগুলিতে চারদিকে কীটি অনুলিপি করুন:

ssh-copy-id -i .ssh/id_rsa.pub user@ip-address:

এখানেই শেষ. আপনাকে আর কখনও পাসওয়ার্ড চাইবে না।

আমি সাধারণভাবে পাসওয়ার্ড অনুমোদনের অপসারণের পরামর্শ দিচ্ছি তবে এটি আপনার উপর নির্ভর করে।


1
Ssh-copy-id রেফারেন্সের জন্য ধন্যবাদ! আমি কিছু গর্ভনিরোধক ব্যবহার করতাম sshpass -p $PASSWORD ssh $USERNAME@$HOST "echo `cat ~/.ssh/id_rsa` >> /home/$USERNAME/.ssh/authorized_keys"তবে এই প্রোগ্রামটি পরিষ্কার এবং উদ্দেশ্যটি পরিষ্কার করে দেয়।
মাস্টারেক্সিলো

3

এসএসএস দিয়ে এটি করার কোনও উপায় নেই, এটি যতটা নিরাপদ তা পেতে পারে।

ড্যানিলা যেমন উল্লেখ করেছিলেন আপনি প্রত্যাশা স্ক্রিপ্টগুলি ব্যবহার করতে পারেন তবে আমি বিরক্ত করব না।

আমি ভাবছি আপনি কী অর্জন করার চেষ্টা করছেন? আপনি কি একটি সার্ভার থেকে অন্য সার্ভারে যেতে চান? এই ক্ষেত্রে আপনি আপনার ওয়ার্কস্টেশনে ssh-এজেন্ট সেটআপ করতে এবং ব্যবহার করতে এবং লক্ষ্য হোস্টগুলিতে এজেন্ট ফরোয়ার্ডিং সক্ষম করতে চান; এইভাবে শংসাপত্রের বিনিময় আপনার ব্যক্তিগত কীটিকে চারপাশে অনুলিপি না করেই আপনার স্থানীয় এজেন্টের কাছে নিয়ে যেতে হবে।


ভিজ্যুয়াল স্টুডিওতে ব্যক্তিগত অ্যাক্সেস টোকেনগুলির ধারণা রয়েছে যা অ্যাপ নির্দিষ্ট পাসওয়ার্ডের মতো যেখানে এই বৈশিষ্ট্যটি সহায়ক হবে।
spuder

1

আমি ~/.local/binডিরেক্টরি থেকে এই স্ক্রিপ্ট ব্যবহার

#!/usr/bin/bash

ORIG_SSH=/usr/bin/ssh
HOST=$1

SSHPASS=$(grep -Pzo "Host $HOST"'\s*\n((?!Host).*\n)*#PS\s(\N+)\n' ~/.ssh/config|tail -n 2|head -n 1 | sed 's/#PS //')
if [ -n $SSHPASS ]; then
    export SSHPASS
    sshpass -e $ORIG_SSH $@
else
    $ORIG_SSH $@
fi

কোনটি আমাকে পাসফ্রেজ নির্দিষ্ট করার অনুমতি দেবে #PS <password>মধ্যে .ssh/configফাইল।

কিন্তু, যেমন সবাই বলছেন, এটা ব্যবহার করা ভালো ssh-keysসঙ্গে ssh-agentযখন এটা সম্ভব


0

এই পরিস্থিতিটি পরিচালনা করার সঠিক উপায় হ'ল সেশন-ভিত্তিক এসএসএল এজেন্ট ব্যবহার করা। এটি এখানে:

$ eval `ssh-agent`
$ ssh-add /home/user/.ssh/your_key
Enter passphrase for /home/user/.ssh/your_key:

পাসওয়ার্ডটি অধিবেশনটির অবশিষ্টাংশের জন্য বৈধ রাখা হবে। আপনাকে কেবল একবার প্রথম কমান্ডটি চালানো দরকার এবং এর পরে আপনি যতগুলি চাবি চান যোগ করতে পারেন। সেশনটি মারা গেলে এজেন্টটিও তাই কোনও পাসওয়ার্ডের হার্ড-কোডড স্টোরেজ নেই।

হতবাক যে এত দিন পরে এই উত্তর এখানে ছিল না!


এটি না থাকার কারণ সম্ভবত পোস্টারটি সুনির্দিষ্টভাবে বলেছিল যে তিনি পাবলিক / প্রাইভেট কী জুটি ব্যবহার করতে চান না।
জেনি ডি 16

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

-1

আপনি এটি এসপিএস ব্যবহার করে নিরাপদে উপায়ে করতে পারেন

  1. ইতিহাস ব্যতীত আপনার পাসওয়ার্ড সেট করুন

    পিএস = আপনার_পাসওয়ার্ড এক্সপোর্ট করুন ; ইতিহাস -d d (ইতিহাস 1)

  2. উপরের মত host / .ssh / কনফিগারেশনে হোস্টের নাম সেট করুন

  3. পরিবেশ পরিবর্তনশীল ব্যবহার করতে ssh পাস ব্যবহার করুন এবং একক কমান্ডে প্রয়োজনীয় মেশিনে লগইন করুন

sshpass -p $ পিএস এসএস হোস্ট_লিয়াস

আপনার পরিবেশটি আপনার পাসওয়ার্ড ধারণ করে এবং এটি ঝুঁকিপূর্ণ যে কোনও ক্রিয়াকলাপ কার্যকর করছে যদি আপনি জানেন না যে আপনি কী চালাচ্ছেন তা এই পাসওয়ার্ডটি ফাঁস করতে পারে


না এটি নিরাপদ নয়। এবং এটি বেশ কুরুচিপূর্ণ।
7heo.tk

সমস্যার "সমাধান" কি আর দীর্ঘ নয়? এই সমস্ত অতিরিক্ত পদক্ষেপ এবং আপনার এখনও টাইপ করতে হবেsshpass -p $PS ...
ড্যান এইচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.