The*_*end 12 ssh virtual-machine vagrant
目前,我期待在建立一个流浪我的Mac机器上的环境,这样我就可以运行vagrant up
,然后将安装rbenv
和ruby
所有我需要的。然后我有一个 Bash 脚本,它将从 github 获取我所有的 repos。
唯一的问题是我的新 vagrant vm 现在必须生成一个 ssh 密钥,然后将其链接到我的 Github 帐户。这可能很麻烦。特别是因为我想与所有有权访问我们的 repos 的人共享我的 Vagrant 文件,以便他们也可以这样做。
所以我想我可以尝试将我的主机 ssh 转发到 VM,以便 VM 可以将我的主机 ssh 转发到 Github。在这篇文章:Githubs 演练之后,我设置了我的主机 ssh 配置:
Host localhost
ForwardAgent yes
Run Code Online (Sandbox Code Playgroud)
并设置在我的流浪文件中
Vagrant.configure("2") do |config|
config.ssh.forward_agent = true
...
end
Run Code Online (Sandbox Code Playgroud)
当我登录到我的 VM 并运行以下命令时,我收到此错误:
$ ssh -T git@github.com`
Permission denied (publickey)
Run Code Online (Sandbox Code Playgroud)
有没有人尝试过类似的设置?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
Run Code Online (Sandbox Code Playgroud)
The*_*end 10
几个小时后,我取得了进展
Vagrant.configure("2") do |config|
config.ssh.private_key_path = "~/.ssh/id_rsa"
config.ssh.forward_agent = true
end
Run Code Online (Sandbox Code Playgroud)
config.ssh.private_key_path
是您的本地私钥 您的私钥必须对本地 ssh-agent 可用。您可以使用 进行检查ssh-add -L
,如果未列出,请使用 进行添加ssh-add ~/.ssh/id_rsa
。不要忘记将您的公钥添加到~/.ssh/authorized_keys
Vagrant VM 上。
然后vagrant reload
使用新的 vagrant 配置重建它。那么它应该可以使用
$ ssh -T git@github.com
Run Code Online (Sandbox Code Playgroud)
流浪者应该第一次返回
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.
Run Code Online (Sandbox Code Playgroud)
如果您没有~/.ssh/authorized_keys
在 Vagrant VM 上添加公钥。
在那里之后它应该读作
vagrant@precise64:~$ ssh -T git@github.com
Hi Ruberto! You've successfully authenticated, but GitHub does not provide shell access.
Run Code Online (Sandbox Code Playgroud)
谢谢所有帮助过我的人。正是因为你,我才进一步挖掘:)
归档时间: |
|
查看次数: |
13864 次 |
最近记录: |