আমি কীভাবে আমার মোস্তক কী টি ভিজেন্টে স্থানান্তর করতে পারি?


9

আমি কোনও এসএস কীটি ভ্যাব্র্যান্টে স্থানান্তরিত করতে এবং এগুলিতে রাখতে চাই ~/.ssh, এটি করার সহজতম উপায় কী? আমার ভ্যাগ্র্যান্ট ফাইলটিতে আমার কাছে নিম্নলিখিতগুলি রয়েছে:

config.vm.synced_folder "conf.d", "/svr/conf.d"
config.vm.provision :shell, 
:inline => "ls -l /svr/conf.d/.ssh"

মোট 4 -আরআর-আর - r-- 1 টি যোদ্ধা 1670 মার্চ 08 08:19 id_rsa.mediapop

config.vm.provision :shell, 
:inline => "cp /svr/conf.d/.ssh/id_rsa.mediapop /home/ubuntu/.ssh/id_rsa"
config.vm.provision :shell, 
:inline => "ls -l /home/ubuntu/.ssh"

মোট 4 -আরউ ------- 1 উবুন্টু উবুন্টু 0 মার্চ 22 08:56 অনুমোদিত_কিজ -আর-আর - আর - 1 টি মূল মূল 1670 মার্চ 26 08:59 id_rsa

তবে আমি যখন পাই তখন vagrant ssh -c "ls -l ~/.ssh":

$ vagrant ssh -c "ls -l ~/.ssh"
total 4
-rw-r--r-- 1 vagrant vagrant 409 Mar 20 04:47 authorized_keys

তাই ভ্যাগ্র্যান্ট আমার .sshডিরেক্টরি ওভাররাইট করছে ।

উত্তর:


13

আমি আমার এসএসএইচ ফাইলটি রেখে conf.d/.ssh/id_rsa.medipopদিয়েছিলাম:

config.vm.synced_folder "conf.d", "/svr/conf.d"
config.vm.provision :shell, 
:inline => "cp /svr/conf.d/.ssh/id_rsa.mediapop /home/vagrant/.ssh/id_rsa"

যা একবার চমকপ্রদভাবে কাজ করেছিল আমি বুঝতে পেরেছিলাম যে যোনি ব্যবহারকারীর নাম vagrantনেই ubuntu(এই কারণেই কেন আমি আমার প্রশ্নে বিভ্রান্ত হয়েছিলাম কেন আমার এসএস কী অদৃশ্য হয়ে গেছে বলে মনে হয়েছিল)।


এটি উইন্ডোতে এই উপায়, যেখানে এজেন্ট ফরোয়ার্ডিং কাজ করে না।
মার্কাস

কাজ করে তবে এই ত্রুটিটি পেয়ে যায়, ==> ডিফল্ট: স্টিডিন: টিটিআইও কি অনুমতি পরিবর্তিত হয় না এবং পুনরায় সেট করতে হবে, সুডো অফ ফিক্সের সাথে চলবে?
রডটেক 20'15

12

এসএসএইচ এজেন্ট ফরওয়ার্ডিং সম্পর্কে কী ?

আপনার এসএসএইচ কীটি স্থানীয়ভাবে প্রথমে কাজ করে তা নিশ্চিত করুন config.ssh.forward_agent = trueএবং তারপরে যাওয়ার জন্য আপনাকে যুক্ত করুন Vagrantfile

ভ্যাগ্র্যান্ট বিশদ এখানে: http://docs.vagrantup.com/v2/vagrantfile/ssh_settings.html


আমি এই কাজটি করতে ক্লান্ত হয়ে পড়েছি যেহেতু আমি আমাদের ডিজাইনারদের কাছে যোনি বাক্সটি বিতরণের পরিকল্পনা করছি, যারা সম্ভবত কম্পিউটারের জিনিস হিসাবে কীচেইনগুলিকে উল্লেখ করতে শুরু করলে আমার দিকে মজার লাগবে। :) ধন্যবাদ যদিও!
কিট সুন্দে

সেক্ষেত্রে আমি হয় ভিউইয়ের সাথে আমার নিজের বাক্সটি তৈরি করব এবং এটি একটি প্যাকেজ হিসাবে বিতরণ config.ssh.private_key_pathকরব বা ভ্যাগ্রান্টফাইলের সাথে প্রকল্প ফোল্ডারে এসএস কী রাখার মতো ভয়ানক কিছু করব। এটি ব্যবহারের ক্ষেত্রে কোনওভাবে বিতরণ করা উচিত, তাই আপনার মন্দটি বেছে নিন!
rjocoleman

1
এটি বেশ একই প্রশ্ন: superuser.com/a/570775/210384
rjocoleman

5

আপনি রুবির কোর ফাইল মডিউলটি এর মতো ব্যবহার করতে পারেন:

  config.vm.provision "shell" do |s|
    ssh_pub_key = File.readlines("#{Dir.home}/.ssh/id_rsa.pub").first.strip
    s.inline = <<-SHELL
      echo #{ssh_pub_key} >> /home/vagrant/.ssh/authorized_keys
      echo #{ssh_pub_key} >> /root/.ssh/authorized_keys
    SHELL
  end

আমি সত্যিই অবাক হয়েছি যে ভ্যাগ্র্যান্ট এটি ডিফল্টরূপে সরবরাহ করে না!


আমি echoযুক্তির আশেপাশে উদ্ধৃতি যুক্ত করার পরামর্শ দেব : echo "#{ssh_pub_key}" >> /home/vagrant/.ssh/authorized_keysএবং echo "#{ssh_pub_key}" >> /root/.ssh/authorized_keys। যদি কোনও পাবলিক এসএসএইচ কীতে বিশেষ অক্ষর থাকে (যেমন ()।
tjanez

1

ভ্যাগ্র্যান্ট শেল প্রভিজারকে একবার দেখুন , আপনি এটি আপনার ভ্যাগ্রান্টফাইলে যুক্ত করতে চান।

তবে, আপনি কী অর্জন করতে চাইছেন তার উপর নির্ভর করে ভ্যাগ্র্যান্ট অ্যাক্সেসের জন্য সরবরাহিত এসএস কী ব্যবহার করা ভাল।

আপনার সাথে যুক্ত হওয়ার জন্য একটি তাত্ক্ষণিক কনফিগার ফাইল তৈরি করতে ~/.ssh/config, পরিচয় ফাইল লাইন রান সহ $ vagrant ssh-config। আপনি $ ssh you-vagrant-boxবরং চেয়ে পারে $ vagrant ssh


1
আহ এটি আমার বাক্সে এসএসএইচিংয়ের জন্য নয়, এটি আমার গিট রিপোগুলিকে অস্পষ্টভাবে অ্যাক্সেস দেওয়ার জন্য। সুতরাং আমাকে আমার হোস্ট থেকে একটি ফাইল move / .ssh /
কিট সুন্দে

1
এটা আরও স্পষ্ট! উপরের আপনার সম্পাদনায় আপনি কি নিশ্চিত যে ~/এবং /home/ubuntuএকই অবস্থান? ভ্যাগ্র্যান্টের ডিফল্ট হোমডির /home/vagrant
rjocoleman

আপনার ভ্যাগ্রান্টফাইলে রুবি সম্পূর্ণরূপে ব্যাখ্যা করা আছে তা ভুলে যাবেন না, সুতরাং আপনি এর মতো কিছু করতে পারেন: git_ssh_key = File.read('/svr/conf.d/.ssh/id_rsa.mediapop'); config.vm.provision :shell, :inline => "cat >>/home/vagrant/.ssh/id_rda.mediapop <<EOF #{git_ssh_key} EOF" যদিও আপনি এসএসসি কী পড়ার অনুমতি নিয়ে যেতে পারেন।
rjocoleman

1
আমি ~/.sshসিঙ্কযুক্ত ফোল্ডারটি ব্যবহার করে ফাইলটি অনুলিপি করতে সক্ষম হয়েছি cp, তবে মনে হয় এটি পরবর্তীতে ওভাররাইট করে vag
কিট সান্দে

0

উভয় প্রাইভেট এবং পাবলিক কী সরাতে নিম্নলিখিত কাজ করবে:

config.vm.provision "shell" do |s|
  ssh_prv_key = File.read("#{Dir.home}/.ssh/id_rsa")
  ssh_pub_key = File.readlines("#{Dir.home}/.ssh/id_rsa.pub").first.strip
  s.inline = <<-SHELL
    echo Provisioning public ssh key...
    [ -e /home/vagrant/.ssh/id_rsa.pub ] && rm /home/vagrant/.ssh/id_rsa.pub
    touch /home/vagrant/.ssh/id_rsa.pub
    echo "#{ssh_pub_key}" >> /home/vagrant/.ssh/id_rsa.pub

    echo Provisioning private ssh key...
    [ -e /home/vagrant/.ssh/id_rsa ] && rm /home/vagrant/.ssh/id_rsa
    touch /home/vagrant/.ssh/id_rsa
    echo "#{ssh_prv_key}" >> /home/vagrant/.ssh/id_rsa

    echo Provisioning of ssh keys completed [Success].
  SHELL
end
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.