penerusan ssh-agent untuk VM Vagrant


12

Saat ini saya sedang mencari pengaturan lingkungan Vagrant pada mesin Mac saya, sehingga saya dapat menjalankannya vagrant updan kemudian akan menginstal rbenvdan rubydan semua yang saya butuhkan. Lalu saya punya skrip Bash yang akan mengambil semua repo saya dari github.

Satu-satunya hal adalah bahwa gelandangan baru saya sekarang harus menghasilkan kunci ssh dan kemudian menautkannya ke akun Github saya. Ini bisa merepotkan. Terutama karena saya ingin membagikan file Vagrant saya dengan semua orang yang memiliki akses ke repo kami sehingga mereka dapat melakukan hal yang sama.

Jadi saya pikir saya bisa mencoba meneruskan ssh host saya ke VM sehingga VM dapat meneruskan ssh host saya ke Github. Mengikuti artikel ini: Panduan Githubs , saya menetapkan konfigurasi ssh host saya:

Host localhost
    ForwardAgent yes

dan mengatur file gelandangan saya

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

dan ketika saya masuk ke VM saya dan menjalankan perintah berikut ini saya mendapatkan kesalahan ini:

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

Adakah orang yang telah mencoba pengaturan serupa? VM adalah kotak yang tepat 64.

EDIT:

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
Apa output envsetelah Anda memasuki mesin virtual?
Chris Down

SSH_AUTH_SOCK=/tmp/ssh-aDGJQD2812/agent.2812. Tampaknya berfungsi. Apakah Anda yakin tidak memiliki agen SSH yang bertentangan di mesin lain, dan kuncinya benar?
Chris Down

ya menjalankan ssh -T git@github.comberfungsi dan ssh-add -Lmenunjukkan kunci dan saya hanya punya satu dari mereka. brain bashing stuff
TheLegend

1
@ TheLegend Ini adalah tembakan dalam kegelapan, tetapi apakah Anda sudah memeriksa bahwa ssh-agent sudah benar-benar berjalan?
DJJ

Jawaban:


10

Setelah beberapa jam yang melelahkan saya membuat kemajuan

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

config.ssh.private_key_pathadalah kunci pribadi lokal Anda. Kunci pribadi Anda harus tersedia untuk agen ssh lokal. Anda dapat memeriksa ssh-add -L, jika tidak terdaftar tambahkan dengan ssh-add ~/.ssh/id_rsa. Jangan lupa untuk menambahkan kunci publik Anda ~/.ssh/authorized_keysdi VM Vagrant.

Kemudian vagrant destroydan membangunnya kembali menggunakan konfigurasi gelandangan baru. maka itu harus bekerja dengan tes host dan gelandangan

$ ssh -T git@github.com

gelandangan harus kembali pertama kali

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.

Jika Anda tidak menambahkan kunci publik Anda ~/.ssh/authorized_keysdi VM Vagrant.

Setelah itu harus dibaca sebagai

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

Terima kasih semua yang telah membantu saya. itu karena kamu bahwa aku pergi menggali lebih jauh :)


3
Milik saya tidak mengatakan "Hai Ruberto!". Apakah boleh jika dikatakan ada nama yang berbeda di sana?
Darth Egregious

1
Yeah @ user973810 hanya merupakan respons dari Github, jadi itu seharusnya nama yang telah Anda daftarkan dengan Github.
TheLegend

1
Harap ingatkan implikasi dari vagrant destroy. Saya baru saja kehilangan pekerjaan seminggu karena ini, saya pikir itu hanya akan merusak konfigurasi.
A1rPun
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.