Ssh- एजेंट एक Vagrant VM के लिए अग्रेषण


12

मैं वर्तमान में अपने मैक मशीन पर वैग्रंट पर्यावरण स्थापित करने की ओर देख रहा हूं , ताकि मैं चला vagrant upसकूं rbenvऔर फिर यह स्थापित हो जाएगा rubyऔर मुझे सभी की आवश्यकता होगी। फिर मेरे पास एक बैश स्क्रिप्ट है जो मेरे सारे रिपॉथ को गितूब से लाएगी।

केवल एक चीज यह है कि मेरी नई योनि vm को अब एक ssh कुंजी उत्पन्न करनी है और फिर इसे मेरे Github खाते से लिंक करना है। यह बोझिल हो सकता है। खासकर जब से मैं अपनी वैग्रांट फाइल उन सभी के साथ साझा करना चाहूंगा जिनकी हमारे रिपॉज तक पहुंच है ताकि वे भी ऐसा कर सकें।

इसलिए मैंने सोचा कि मैं अपने मेजबान एसएस को वीएम को अग्रेषित करने की कोशिश कर सकता हूं ताकि वीएम अपने मेजबान एसश को गीथूब को अग्रेषित कर सके। इस लेख का अनुसरण करते हुए: गिथब्स वॉकथ्रू , मैंने अपने मेजबानों को ss config सेट किया:

Host localhost
    ForwardAgent yes

और मेरी योनि फ़ाइल में सेट करें

Vagrant.configure("2") do |config|
  config.ssh.forward_agent = true
  ...
end

और जब मैं अपने VM में लॉग इन करता हूं और निम्न कमांड चलाता हूं तो मुझे यह त्रुटि मिलती है:

$ ssh -T git@github.com`
Permission denied (publickey)

क्या कोई ऐसा है जिसने समान सेटअप की कोशिश की है? VM एक सटीक 64 बॉक्स है।

संपादित करें:

env:

vagrant@precise64:~$ env
TERM=xterm-256color
SHELL=/bin/bash
SSH_CLIENT=10.0.2.2 53068 22
SSH_TTY=/dev/pts/0
LC_ALL=en_US
USER=vagrant
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
RBENV_ROOT=/opt/rbenv
SSH_AUTH_SOCK=/tmp/ssh-aDGJQD2812/agent.2812
MAIL=/var/mail/vagrant
PATH=/opt/rbenv/shims:/opt/rbenv/bin:/opt/rbenv/bin/rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/vagrant_ruby/bin
PWD=/home/vagrant
SHLVL=1
HOME=/home/vagrant
LOGNAME=vagrant
SSH_CONNECTION=10.0.2.2 53068 10.0.2.15 22
LC_CTYPE=UTF-8
LESSOPEN=| /usr/bin/lesspipe %s
LESSCLOSE=/usr/bin/lesspipe %s %s
_=/usr/bin/env

1
envवर्चुअल मशीन में प्रवेश करने के बाद क्या होता है ?
क्रिस डाउन

SSH_AUTH_SOCK=/tmp/ssh-aDGJQD2812/agent.2812। यह काम करता प्रतीत होता है। क्या आप सुनिश्चित हैं कि आपके पास अन्य मशीन पर एक परस्पर विरोधी SSH एजेंट नहीं है, और कुंजी सही है?
क्रिस डाउन

हाँ चल ssh -T git@github.comकाम करता है और ssh-add -Lकुंजी दिखाता है और मैं केवल उनमें से एक है। मस्तिष्क को कोसने सामान
TheLegend

1
@ लॉजेंड यह अंधेरे में एक शॉट है, लेकिन क्या आपने जाँच की है कि ssh- एजेंट निश्चित रूप से चल रहा है?
djf

जवाबों:


10

कुछ भीषण घंटों के बाद मैंने हेडवे बनाया

Vagrant.configure("2") do |config|
  config.ssh.private_key_path = "~/.ssh/id_rsa"
  config.ssh.forward_agent = true
end

config.ssh.private_key_pathआपकी स्थानीय निजी कुंजी है आपकी निजी कुंजी स्थानीय ssh- एजेंट के लिए उपलब्ध होनी चाहिए। यदि आप ssh-add -Lइसे सूचीबद्ध नहीं करते हैं , तो आप इसके साथ जांच कर सकते हैं ssh-add ~/.ssh/id_rsa~/.ssh/authorized_keysVagrant VM पर अपनी सार्वजनिक कुंजी जोड़ना न भूलें ।

फिर vagrant destroyऔर नए योनि विन्यास का उपयोग करके इसका पुनर्निर्माण करें। तो यह मेजबान और योनि दोनों का उपयोग करके परीक्षण का काम करना चाहिए

$ ssh -T git@github.com

योनि को पहली बार लौटना चाहिए

The authenticity of host 'github.com (204.232.175.90)' can't be established.
RSA key fingerprint is 16:27:ac:a5:7c:28:2d:36:63:2b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,205.232.175.93' (RSA) to the list of known hosts.

यदि आपने ~/.ssh/authorized_keysVagrant VM पर सार्वजनिक कुंजी नहीं जोड़ी है।

इसके बाद के रूप में पढ़ना चाहिए

vagrant@precise64:~$ ssh -T git@github.com
Hi Ruberto! You've successfully authenticated, but GitHub does not provide shell access.

आप सभी का धन्यवाद जिसने मेरी मदद की। यह आपकी वजह से था कि मैं आगे खुदाई करता गया :)


3
मेरा कहना नहीं है "हाय Ruberto!"। क्या यह ठीक है अगर यह वहां एक अलग नाम कहता है?
डार्थ एलीगेंट

1
हाँ @ user973810 इसकी सिर्फ जीथब से प्रतिक्रिया है, इसलिए यह वह नाम होना चाहिए जिसे आपने जीथब के साथ पंजीकृत किया है।
लेगेंड

1
कृपया इसके निहितार्थ के बारे में चेतावनी दें vagrant destroy। मैं सिर्फ इस वजह से काम का एक सप्ताह खो दिया है, मैंने सोचा कि यह केवल कॉन्फ़िगरेशन को नष्ट कर देगा।
A1rPun
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.