virtualbox+vagrant学习-3-Vagrant Share-3-SSH Sharing

SSH Sharing

vagrant share通过向vagrant share提供--SSH标志,使远程SSH访问vagrant环境变得非常容易。

如果你想让同事访问你的SSH,以便对ops问题进行故障排除,那么简单的SSH共享是非常有用的。此外,如果你愿意,它还支持使用vagrant环境进行结对编程!

作为安全措施,SSH共享在默认情况下是禁用的。要启用SSH共享,只需在调用vagrant share时提供--SSH标志。


1.Usage使用

即运行vagrant share --ssh命令

当启用SSH共享时,Vagrant为SSH访问生成一个全新的密钥对。公钥部分自动插入到vagrant中,私钥部分提供给连接到vagrant share的用户。此私钥使用将提示你输入密码进行加密。这个密码永远不会通过vagrant在网络上传输,它是一个额外的安全层,可以防止任何可能知道你的共享名的人轻易访问你的计算机。

当你运行vagrant share --ssh命令后,它将输出你共享的名字

userdeMBP:~ user$ vagrant share --ssh
Vagrant Share now defaults to using the `ngrok` driver.
The `classic` driver has been deprecated.

For more information about the `ngrok` driver, please
refer to the documentation:

  https://www.vagrantup.com/docs/share/

==> default: Detecting network information for machine...
    default: Local machine address: 127.0.0.1
    default:  
    default: Note: With the local address (127.0.0.1), Vagrant Share can only
    default: share any ports you have forwarded. Assign an IP or address to your
    default: machine to expose all TCP ports. Consult the documentation
    default: for your provider ('virtualbox') for more information.
    default:  
    default: An HTTP port couldn't be detected! Since SSH is enabled, this is
    default: not an error. If you want to share both SSH and HTTP, please set
    default: an HTTP port with `--http`.
    default:  
==> default: Generating new SSH key...
    default: Please enter a password to encrypt the key: //输入密码
    default: Repeat the password to confirm: 
/Users/user/.vagrant.d/gems/2.4.4/gems/vagrant-share-1.1.9/lib/vagrant-share/activate.rb:590: warning: constant OpenSSL::Cipher::Cipher is deprecated
    default: Inserting generated SSH key into machine...
    default: Local HTTP port: disabled
    default: Local HTTPS port: disabled
    default: SSH Port: 2222
    default: Port: 2222
==> default: Creating Vagrant Share session...
    share: Box 'hashicorp/vagrant-share' could not be found. Attempting to find and install...
    share: Box Provider: virtualbox
    share: Box Version: >= 0
    share: Loading metadata for box 'hashicorp/vagrant-share'
    share: URL: https://vagrantcloud.com/hashicorp/vagrant-share
    share: Adding box 'hashicorp/vagrant-share' (v0.1.0) for provider: virtualbox
    share: Downloading: https://vagrantcloud.com/hashicorp/boxes/vagrant-share/versions/0.1.0/providers/virtualbox.box
    share: Download redirected to host: s3.amazonaws.com
    share: Successfully added box 'hashicorp/vagrant-share' (v0.1.0) for 'virtualbox'!  //默认打开的是该虚拟机,进行下载即配置
    share: Importing base box 'hashicorp/vagrant-share'...
    share: Matching MAC address for NAT networking...
    share: Setting the name of the VM: share-0524aac2-590a-4caf-af81-0fb8f5025e88
    share: Fixed port collision for 22 => 2222. Now on port 2200.
    share: Vagrant has detected a configuration issue which exposes a
    share: vulnerability with the installed version of VirtualBox. The
    share: current guest is configured to use an E1000 NIC type for a
    share: network adapter which is vulnerable in this version of VirtualBox.
    share: Ensure the guest is trusted to use this configuration or update
    share: the NIC type using one of the methods below:
    share: 
    share:   https://www.vagrantup.com/docs/virtualbox/configuration.html#default-nic-type
    share:   https://www.vagrantup.com/docs/virtualbox/networking.html#virtualbox-nic-type
    share: Clearing any previously set network interfaces...
    share: Preparing network interfaces based on configuration...
    share: Adapter 1: nat
    share: Forwarding ports...
    share: 31338 (guest) => 65535 (host) (adapter 1)
    share: 22 (guest) => 2200 (host) (adapter 1)
    share: Running 'pre-boot' VM customizations...
    share: Booting VM...
    share: Waiting for machine to boot. This may take a few minutes...
    share: SSH address: 127.0.0.1:2200
    share: SSH username: tc
    share: SSH auth method: password
    share: 
    share: Inserting generated public key within guest...
    share: Removing insecure key from the guest if it's present...
    share: Key inserted! Disconnecting and reconnecting using new SSH key...
    share: Machine booted and ready!
==> share: Halting Vagrant share!
==> share: TCP tunnels are only available after you sign up. //失败的原因是我没有在ngrox上注册或者是没有添加授权码
==> share: Sign up at: https://ngrok.com/signup
==> share: 
==> share: If you have already signed up, make sure your authtoken is installed.
==> share: Your authtoken is available on your dashboard: https://dashboard.ngrok.com
==> share: 
==> share: ERR_NGROK_302
==> share: Forcing shutdown of VM...
==> share: Destroying VM and associated drives...

我已经使用GitHub的账户登录了ngrox官网,那么就是还没有授权的原因,到该网址https://dashboard.ngrok.com查看你自己的授权码:

然后运行命令./ngrok authtoken 授权码  来进行授权

userdeMBP:~ user$ ./ngrok authtoken 我的授权码DMcU
Authtoken saved to configuration file: /Users/user/.ngrok2/ngrok.yml

然后再运行一次,果然就成功了:

userdeMBP:~ user$ vagrant share --ssh
Vagrant Share now defaults to using the `ngrok` driver.
The `classic` driver has been deprecated.

For more information about the `ngrok` driver, please
refer to the documentation:

  https://www.vagrantup.com/docs/share/

==> default: Detecting network information for machine...
    default: Local machine address: 127.0.0.1
    default:  
    default: Note: With the local address (127.0.0.1), Vagrant Share can only
    default: share any ports you have forwarded. Assign an IP or address to your
    default: machine to expose all TCP ports. Consult the documentation
    default: for your provider ('virtualbox') for more information.
    default:  
    default: An HTTP port couldn't be detected! Since SSH is enabled, this is
    default: not an error. If you want to share both SSH and HTTP, please set
    default: an HTTP port with `--http`.
    default:  
==> default: Generating new SSH key...
    default: Please enter a password to encrypt the key: //设置你的密码
    default: Repeat the password to confirm: 
/Users/user/.vagrant.d/gems/2.4.4/gems/vagrant-share-1.1.9/lib/vagrant-share/activate.rb:590: warning: constant OpenSSL::Cipher::Cipher is deprecated
    default: Inserting generated SSH key into machine...
    default: Local HTTP port: disabled
    default: Local HTTPS port: disabled
    default: SSH Port: 2222
    default: Port: 2222
==> default: Creating Vagrant Share session...
    share: Importing base box 'hashicorp/vagrant-share'...
    share: Matching MAC address for NAT networking...
    share: Setting the name of the VM: share-93a8bbdb-abd3-4499-ac8d-bae03a558ada
    share: Fixed port collision for 22 => 2222. Now on port 2200.
    share: Vagrant has detected a configuration issue which exposes a
    share: vulnerability with the installed version of VirtualBox. The
    share: current guest is configured to use an E1000 NIC type for a
    share: network adapter which is vulnerable in this version of VirtualBox.
    share: Ensure the guest is trusted to use this configuration or update
    share: the NIC type using one of the methods below:
    share: 
    share:   https://www.vagrantup.com/docs/virtualbox/configuration.html#default-nic-type
    share:   https://www.vagrantup.com/docs/virtualbox/networking.html#virtualbox-nic-type
    share: Clearing any previously set network interfaces...
    share: Preparing network interfaces based on configuration...
    share: Adapter 1: nat
    share: Forwarding ports...
    share: 31338 (guest) => 65535 (host) (adapter 1)
    share: 22 (guest) => 2200 (host) (adapter 1)
    share: Running 'pre-boot' VM customizations...
    share: Booting VM...
    share: Waiting for machine to boot. This may take a few minutes...
    share: SSH address: 127.0.0.1:2200
    share: SSH username: tc
    share: SSH auth method: password
    share: 
    share: Inserting generated public key within guest...
    share: Removing insecure key from the guest if it's present...
    share: Key inserted! Disconnecting and reconnecting using new SSH key...
    share: Machine booted and ready!
==> share: 
==> share: Your Vagrant Share is running! Name: budget_status:chapter_insect
==> share: 
==> share: You're sharing with SSH access. This means that another can SSH to
==> share: your Vagrant machine by running:
==> share: 
==> share:   vagrant connect --ssh budget_status:chapter_insect //这就是时候连接该共享时使用的名称
==> share: 

 

然后任何人都可以通过运行vagrant connect --ssh 名称(其中名称是前面运行vagrant share --ssh命令输出的共享的名称)直接连接到你的vagrant环境。

$ vagrant connect --ssh budget_status:chapter_insect

如果私钥已加密(默认行为),则会提示连接的人输入解密私钥的密码。

同时,可以看见virtualBox果然新打开了一个虚拟机:

 当使用ctrl-C关闭vagrant share时,该虚拟机机器相关的驱动都会自动关闭并删除:

^C==> share: Halting Vagrant share!
==> share: Forcing shutdown of VM...
==> share: Destroying VM and associated drives...

 

转载于:https://www.cnblogs.com/wanghui-garcia/p/10174353.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值