কমান্ড লাইনে এসভিএনকে কীভাবে আমি একটি এসএসএইচ পাসওয়ার্ড সরবরাহ করতে পারি?


8

আমার ক্ষেত্রে, আমি একটি এসভিএন চেকআউট করতে চাই:

svn co svn+ssh://10.106.191.164/home/svn/shproject

তবে, আমি সেই এক লাইনে পাসওয়ার্ড রাখতে চাই, যাতে এটি পপ আপ না হয়।


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

উত্তর:


12

svn co svn + ssh: // ব্যবহারকারীর নাম: password@10.106.191.164/home/svn/shproject


প্রশ্নের উত্তর দেওয়ার জন্য এবং কেবল বিকল্প সরবরাহ না করার জন্য +1 (যদিও তারা উপযুক্ত হতে পারে)।
ব্রিলেলিডা

@ ব্রায়লিডা - আমি কেবল এটিটি কাজ করতে চাই: নীচের আমার পোস্টে পরীক্ষার অনুসারে , মনে হচ্ছে এটি কার্যকর হয় না, যেহেতু পাসওয়ার্ড প্রম্পট প্রদর্শিত হয়; একই পোস্টে একটি সমাধান রয়েছে sshpass(যা আমার জন্য কাজ করে)।
sdaau

যেমন উপরে বলা হয়েছে, এটি আসলে কাজ করে না।
জনি 21

প্রসারিত: এটি সম্ভবত ততক্ষণ কাজ করবে যতক্ষণ ssh পাসওয়ার্ড না জিজ্ঞাসা করে, যা এটি বেশিরভাগ ক্ষেত্রেই ব্যবহার করবে।
জনি 4

16

আপনি এসএসএইচ ব্যবহার করছেন তা প্রদত্ত, পছন্দসই উপায় হ'ল অনুমোদনের জন্য সর্বজনীন কী ব্যবহার করা, যা কোনও পাসওয়ার্ডের প্রয়োজনীয়তা সম্পূর্ণরূপে সংরক্ষণ করে।

কীগুলি তৈরি এবং ইনস্টল করার জন্য একটি গাইড এখানে পাওয়া যাবে


অবশ্যই, আপনি যদি নিজের কীটি সত্যই সুরক্ষিত রাখতে চান তবে আপনার এটি একটি পাস বাক্যাংশ দেওয়া উচিত। : /
রব

7

একটি কিপায়ার তৈরি করা অসীমরূপে ভাল। আপনার স্থানীয় ব্যবহারকারী হিসাবে:

sh ssh-keygen -t rsa

(সমস্ত ডিফল্ট গ্রহণ করুন)

তারপরে .ssh / id_rsa.pub এর বিষয়বস্তু নিন এবং এটি দূরবর্তী সার্ভারে .ssh / অনুমোদিত_keys এ যুক্ত করুন খুব নিশ্চিত হন যে এটি সমস্ত একই লাইনে আটকানো হয়েছে। এছাড়াও .ssh ডিরেক্টরিটির অনুমতিগুলি 600 এর অনুমতি রয়েছে তা খুব নিশ্চিত হন।

তারপরে আপনার পাসওয়ার্ডের জন্য অনুরোধ না করেই ssh করতে সক্ষম হওয়া উচিত।


"সার্ভারে ~ / .ssh এর অনুমতিগুলি 700 হওয়া উচিত The ফাইলটি ~ / .ssh / অনুমোদিত_keys (সার্ভারে) 600 এর একটি মোড থাকার কথা। ক্লায়েন্ট-সাইডে (ব্যক্তিগত) কী এর অনুমতি 600 হওয়া উচিত। " Askubuntu.com/a/46425
জনি 21

6

পাসওয়ার্ড ব্যবহার করার পরিবর্তে আপনি ব্যক্তিগত / পাবলিক কী জুটির দিকে নজর রাখতে চান এবং এটি ব্যবহার করে ssh করতে পারেন। বেশিরভাগ লিনাক্স বিতরণ এ জাতীয় জুড়ি তৈরি করতে সহজেই কমান্ড ব্যবহার করতে আসে use তবে এটি আপনার ব্যবহারকারীর ~ / .ssh / अधिकृत_keys ফাইলে সর্বজনীন কী ফাইল জমা করার জন্য সার্ভারের পাশ (একবার) অ্যাক্সেসের প্রয়োজন হবে।


3

আচ্ছা, আমি কি একটি পাসওয়ার্ড লিখুন চাই - আমি আমার পাসওয়ার্ড ওপর নির্ভর কোথাও সংরক্ষিত হচ্ছে পছন্দ না; যাইহোক, আমি এসভিএন + এসএসএস কমান্ডের সেট প্রতি একবার এটি প্রবেশ করতে চাই না ; এবং প্রায়শই, আপনি কেবল একটি করতে চান svn checkout- এবং যাই হোক না কেন প্রচুর পাসওয়ার্ড লিখতে হবে। এটি এমন ক্ষেত্রে আমি একবারে একবারে পাসওয়ার্ড টাইপ করতে চাই।

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

$ svn --version | head -1
svn, version 1.6.6 (r40053)

$ cd /tmp
$ svnadmin create myrepo
$ read -p 'ssh myself@127.0.0.1? ' PASS
ssh myself@127.0.0.1? [type _PASSWORD_, press ENTER]

## trying first with https://superuser.com/a/71479/39752 
# (specify in URL user:pass separated by colon)

## plain ssh - asks for password anyway:

$ ssh myself:$PASS@127.0.0.1
myself:_PASSWORD_@127.0.0.1's password: ^C

# svn - with just username, as expected:

$ svn co svn+ssh://myself@127.0.0.1/tmp/myrepo myrepo-wc
myself@127.0.0.1's password: ^C
svn: Network connection closed unexpectedly

# svn - with password added to URL, asks for password anyway:

$ svn co svn+ssh://myself:$PASS@127.0.0.1/tmp/myrepo myrepo-wc
myself:_PASSWORD_@127.0.0.1's password: ^C
svn: Network connection closed unexpectedly

# trying then with https://superuser.com/a/380426/39752, https://superuser.com/a/327822/39752
# (--non-interactive and --username/--password on command line)

# svn - asks for password anyway:

$ svn co svn+ssh://myself@127.0.0.1/tmp/myrepo --non-interactive --trust-server-cert --username myself --password $PASS --no-auth-cache
myself@127.0.0.1's password: ^C
svn: Network connection closed unexpectedly

যতদূর --username/--passwordউপর svnকমান্ড লাইন সংশ্লিষ্ট হয় - যে না সঙ্গে ব্যাপার svn+ssh, কারণ এটি এর ssh, জিজ্ঞাসা না svn:

এসএনএন - "- পাসওয়ার্ড" এবং "- ব্যবহারকারীর নাম" বিকল্পগুলি উপেক্ষা করে সাবভারশন - স্ট্যাক ওভারফ্লো

আপনি যে প্রম্পটটি পাচ্ছেন তা সাবভারশন আপনাকে পাসওয়ার্ড চেয়ে জিজ্ঞাসা করছে না দেখে মনে হচ্ছে এটি পাসওয়ার্ড চেয়েছে বলে মনে হচ্ছে sh

অতিরিক্ত হিসাবে, লগটি যেমন দেখায়, sshনিজে username:password@...ইউআরএলে " " স্বীকার করে না - এবং তাই করে না svn। কেন কেবলমাত্র ইউআরএল-এ কেবলমাত্র ব্যবহারকারীর নামটি ব্যবহার করার জন্য গ্রহণযোগ্য svn, সম্ভবত এতে ব্যাখ্যা করা হয়েছে ~/.subversion/config:

### (যদি URL টিতে কোনও ব্যবহারকারীর নাম অন্তর্ভুক্ত থাকে, তবে হোস্টনামটি
### টানেল এজেন্টকে @ হিসাবে দেওয়া হবে))

লক্ষ্য করুন কিছুই সম্পর্কে বলা হয় না <user>:<pass>@<hostname>

এখন, দেবিয়ানের এসভিএন + এসএসএইচ ওভার পৃষ্ঠা সাবভার্সনকে ধন্যবাদ জানার পরে অবশেষে বুঝতে পেরেছি যে (এসেসেবল) এসএসএস টানেলের জন্য একটি SVN_SSHপরিবেশের পরিবর্তনশীল ব্যবহৃত হয়েছে ~/.subversion/config; এবং এটি পরিশেষে এমন একতরফা sshpassপদ্ধতিতে পাসওয়ার্ড হ্যান্ডেল করতে প্রোগ্রামটি ব্যবহারের সম্ভাবনাটি উন্মুক্ত করে :

$ SSHPASS=$PASS SVN_SSH="sshpass -e ssh" svn co svn+ssh://myself@127.0.0.1/tmp/myrepo myrepo-wc
Checked out revision 0.

ভাল, অন্তত আমি আনন্দিত আমি অবশেষে এমন একটি সমাধান পেয়েছি যা আমার পক্ষে কাজ করে - আশা করি এটি অন্য
কাউকেও সহায়তা করে, চিয়ার্স!


2
svn co svn+ssh://10.106.191.164/home/svn/shproject --non-interactive --trust-server-cert --username <username> --password <password> --no-auth-cache


1

আমি মনে করি sshpass (লিনাক্সে) ব্যবহার করা এটি পাওয়ার সেরা উপায়।

এসএসপাস ইনস্টল করুন

$ sudo apt-get install sshpass

অস্থায়ী পরিবেশের পরিবর্তনশীল সেট করুন

$ export SSHPASS=*yourpass*

এসএনএন কনফিগারেশন ফাইলটি সম্পাদনা করুন

$ nano ~/.subversion/config

কমান্ডের sshpass -eআগে অবশেষে ssh লাইনে যুক্ত মন্তব্য করুনssh

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