সমস্যা: ঘন ঘন আমি আমার বাক্সগুলিতে প্রথম কমান্ডটি টাইপ করি su -
।
প্রশ্ন: আমি vagrant ssh
ডিফল্টরূপে রুট ব্যবহারকারীকে কীভাবে ব্যবহার করব ?
সংস্করণ: অস্পষ্ট 1.6.5
সমস্যা: ঘন ঘন আমি আমার বাক্সগুলিতে প্রথম কমান্ডটি টাইপ করি su -
।
প্রশ্ন: আমি vagrant ssh
ডিফল্টরূপে রুট ব্যবহারকারীকে কীভাবে ব্যবহার করব ?
সংস্করণ: অস্পষ্ট 1.6.5
উত্তর:
এটি দরকারী:
sudo passwd root
যে কেউ প্রথমে যোনিতে একটি রুট পাসওয়ার্ড সেট করার প্রয়োজনে ধরা পড়েছে
সমাধান:
আপনার সাথে নিম্নলিখিতগুলি যুক্ত করুন Vagrantfile
:
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
আপনি যদি vagrant ssh
এখন থেকে থাকেন, আপনি root
নিম্নলিখিত হিসাবে লগইন করবেন এবং আশা করা উচিত:
==> mybox: Waiting for machine to boot. This may take a few minutes...
mybox: SSH address: 127.0.0.1:2222
mybox: SSH username: root
mybox: SSH auth method: password
mybox: Warning: Connection timeout. Retrying...
mybox: Warning: Remote connection disconnect. Retrying...
==> mybox: Inserting Vagrant public key within guest...
==> mybox: Key inserted! Disconnecting and reconnecting using new SSH key...
==> mybox: Machine booted and ready!
আপডেট 23-জুন -2015 : এটি 1.7.2 সংস্করণেও কাজ করে। 1.7.0 সাল থেকে কী সিকিউরিটির উন্নতি হয়েছে; এই কৌশলটি আগের পদ্ধতিতে ফিরে যায় যা একটি পরিচিত ব্যক্তিগত কী ব্যবহার করে। এই সমাধানটি এমন কোনও বাক্সের জন্য ব্যবহারের উদ্দেশ্যে নয় যা প্রকাশের পূর্বে করা যথাযথ সুরক্ষা ব্যবস্থা না করে সর্বজনীনভাবে অ্যাক্সেসযোগ্য।
তথ্যসূত্র:
vagrant ssh
? (বর্ণিত পরিবর্তনগুলি করার পরে)
config.ssh.password
মূল্য যা আছে তার সাথে মিল রাখতে আপনার রুট পাসডাব্লুড সেট করতে হবে । config.ssh.*
আপনার বাক্সটি অ্যাক্সেস করার জন্য আপনার নতুন যুক্ত হওয়া লাইনগুলি মন্তব্য করতে সক্ষম হবে এবং তারপরে রুট পাসওয়ার্ডটি পরিবর্তন করতে হবে sudo passwd root
।
mkdir -m 700 /root/.ssh && cp ~vagrant/.ssh/authorized_keys /root/.ssh
centos/7
: এই বাক্সটি এলোমেলো রুট পাসওয়ার্ড সেট করে; একটি vagrant ssh
এবং তারপরে sudo su
রুট করতে পারে তবে কনফিগার সেটিংস vagrant up
এই ভিএম ব্যবহার করে নতুন করে কাজ করে না ।
আপনি উবুন্টু / বিশ্বাসযোগ্য 64 বাক্সে থাকলে এটি কাজ করে:
vagrant ssh
একবার আপনি উবুন্টু বাক্সে চলে আসুন:
sudo su
এখন আপনি রুট ব্যবহারকারী। নীচে প্রদর্শিত হিসাবে আপনি রুট পাসওয়ার্ড আপডেট করতে পারেন:
sudo -i
passwd
এখন ফাইলের নীচের লাইনটি সম্পাদনা করুন /etc/ssh/sshd_config
PermitRootLogin yes
এছাড়াও, আপনার নিজস্ব বিকল্প ব্যবহারকারী নাম তৈরি করা সুবিধাজনক:
adduser johndoe
এটি পাসওয়ার্ড না চাইতে পর্যন্ত অপেক্ষা করুন।
Vagrantfile
নীচের মত যদি :
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
তবে অসম্পূর্ণ এখনও আপনাকে রুট পাসওয়ার্ড জিজ্ঞাসা করে, সম্ভবত আপনি যে বেস বাক্সটি ব্যবহার করেছেন সেটি রুট লগইনের অনুমতি দেওয়ার জন্য কনফিগার করা হয়নি।
উদাহরণস্বরূপ, অফিকাল উবুন্টু 14.04 বাক্সটি সেট করে PermitRootLogin yes
না /etc/ssh/sshd_config
।
সুতরাং যদি আপনি চান যে কোনও বাক্স রুট ডিফল্ট হিসাবে লগইন করতে পারে (কেবল ভ্যাগ্রান্টফাইলে, আর কোনও কাজ নয়), আপনাকে এগুলি করতে হবে:
ব্যবহারকারীর নাম অনুসারে একটি ভিএম সেটআপ করুন vagrant
(মূল ছাড়াও যে কোনও নামই হোক)
লগইন করুন এবং sshd কনফিগার ফাইল সম্পাদনা করুন।
উবুন্টু: সম্পাদনা করুন /etc/ssh/sshd_config
, সেট করুন PermitRootLogin yes
অন্যান্য: ....
(আমি কেবল উবুন্টু ব্যবহার করি, অন্যান্য প্ল্যাটফর্মগুলির সংযোগগুলি নির্বিঘ্নে বোধ করি)
একটি নতুন বেস বাক্স তৈরি করুন:
vagrant package --base your-vm-name
এটি একটি ফাইল তৈরি করুন package.box
এই বেস বাক্সটি অস্পষ্টে যুক্ত করুন:
vagrant box add ubuntu-root file:///somepath/package.box
তারপরে, ভিএম তৈরি করতে আপনার এই বেস বাক্সটি ব্যবহার করা দরকার যা স্বয়ংক্রিয়ভাবে রুট হিসাবে লগইন করতে দেয়।
দ্বারা মূল ভিএম ধ্বংস করুন vagrant destroy
আসলটি সম্পাদনা করুন Vagrantfile
, এতে বাক্সের নাম ubuntu-root
এবং ব্যবহারকারী নাম এতে পরিবর্তন করুন root
, তারপরে vagrant up
একটি নতুন তৈরি করুন।
এটি বের করার জন্য আমার কিছুটা সময় ব্যয় হয়েছিল, এটি আমার মতে খুব জটিল। আশা করি অসচ্ছলরা এর উন্নতি করবে।
ভুলে যাবেন না রুটকে লগইনের আগে রুট অনুমোদিত!
/etc/ssh/sshd_config
ফাইলের নীচে কনফিগারেশন কোডটি রাখুন ।
PermitRootLogin yes
এটি Vagrantfile
আমার জন্য কাজের সাথে যুক্ত করা। এই লাইনগুলি sudo su -
প্রতিবার আপনি লগইন করার সময় প্রবেশের সমতুল্য । দয়া করে লক্ষ্য করুন যে এর জন্য ভিএম পুনঃনির্ধারণ করা প্রয়োজন।
config.vm.provision "shell", inline: <<-SHELL
echo "sudo su -" >> .bashrc
SHELL
-i
? 😅
দ্রষ্টব্য: কেবল স্থানীয় উন্নয়নের জন্য এই পদ্ধতিটি ব্যবহার করুন, এটি নিরাপদ নয় । বাক্সটি সরবরাহ করার সময় আপনি পাসওয়ার্ড এবং এসএসএস কনফিগার সেটআপ করতে পারেন। উদাহরণস্বরূপ debian/stretch64
বক্স সহ এটি আমার বিধানের স্ক্রিপ্ট:
config.vm.provision "shell", inline: <<-SHELL
echo -e "vagrant\nvagrant" | passwd root
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
sed -in 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
service ssh restart
SHELL
এটি রুট পাসওয়ার্ড সেট করে vagrant
এবং পাসওয়ার্ড সহ রুট লগইনকে অনুমতি দেয়। আপনি যদি private_network
আইপি ঠিকানার সাথে বল ব্যবহার করে থাকেন 192.168.10.37
তবে আপনি এসএসএস করতে পারেনssh root@192.168.10.37
আপনাকে এটি পরিবর্তন করতে হবে echo
এবং sed
ডিফল্ট sshd_config
ফাইলের উপর নির্ভর করে কমান্ডগুলি প্রয়োগ করতে হবে।
আমি জানি এটি একটি পুরানো প্রশ্ন, তবে মূল প্রশ্নটির দিকে তাকানো দেখে মনে হচ্ছে যে ব্যবহারকারী কেবল কমান্ডটি রুট হিসাবে চালাতে চেয়েছিল, আমি যখন উত্তরটি অনুসন্ধান করতে গিয়েছিলাম তখন তা করার দরকার ছিল এবং প্রশ্নটি পেরিয়ে গিয়েছিল।
সুতরাং এটি আমার মতে মূল্যবান:
vagrant ssh servername -c "echo vagrant | sudo -S shutdown 0"
vagrant
পাসওয়ার্ডটি কি sudo কমান্ডে প্রতিধ্বনিত হচ্ছে, কারণ আমরা সবাই জানি যে, ভিজাগর অ্যাকাউন্টে সুডোর সুবিধাগুলি রয়েছে এবং আপনি যখন sudo করবেন তখন আপনাকে ব্যবহারকারীর অ্যাকাউন্টের পাসওয়ার্ড নির্দিষ্ট করতে হবে, রুট নয় এবং অবশ্যই ডিফল্টরূপে, যোদ্ধা ব্যবহারকারীর পাসওয়ার্ড vagrant
!
ডিফল্টরূপে শাটডাউন করার জন্য আপনাকে রুট সুবিধাগুলি প্রয়োজন তাই আমার ধারণা শটডাউন করা ভাল পরীক্ষা।
স্পষ্টতই যদি সেই অসভ্য পরিবেশের জন্য কেবল একটিই থাকে তবে আপনার কোনও সার্ভারের নাম নির্দিষ্ট করার দরকার নেই। এছাড়াও, আমরা হোস্টের কাছে স্থানীয় ভ্যাংগার ভার্চুয়াল মেশিনের কথা বলছি, তাই আমি দেখতে পাবার মতো কোনও সুরক্ষা সমস্যা নেই।
আশাকরি এটা সাহায্য করবে.
vagrant destroy
vagrant up
অনুগ্রহ করে এটি যোজনী ফাইলটিতে যুক্ত করুন:
config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'