How to change the ssh auth method from password to private key, by config.ssh in Vagrantfile?

5,597 views
Skip to first unread message

Brady Lee

unread,
May 25, 2015, 12:17:33 AM5/25/15
to vagra...@googlegroups.com
Hi, 

I can manually ssh in the Ubuntu guest OS by a private key method in Mac terminal.

But the "vagrant ssh" command sticks to the password method, and I cannot figure out how to change the auth method.

vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'ubuntu/ubuntu-15.04-snappy-core-stable' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: bridged
==> default: Forwarding ports...
default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 192.168.0.13:2222
default: SSH username: ubuntu
default: SSH auth method: password
default: Warning: Connection refused. Retrying...
default: Warning: Connection refused. Retrying...

I have read through the vagrant doc about ssh settings, but found nothing "auth method" related.

And my "vagrant ssh-config" result:

vagrant ssh-config

Host default
HostName 192.168.0.13
User ubuntu
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile  /Users/brady/spa/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL

It shows that the password authentication is disabled, but seems like it did not work in "vagrant up"/"vagrant ssh".

And the access permission to the vagrant private key file is shown here, nothing suspicious to me.

-rw-r--r--  1 brady  staff   1.6K May 24 14:08 private_key


Regards,

Brady Lee

Alvaro Miranda Aguilera

unread,
May 25, 2015, 1:47:59 AM5/25/15
to vagra...@googlegroups.com
What's wrong with defaullt vagrant user and localhost/eth0 ip for ssh?

seems you have changed user, and ssh port too

Can you share your Vagrantfile ?
> --
> You received this message because you are subscribed to the Google Groups
> "Vagrant" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to vagrant-up+...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
Message has been deleted

Brady Lee

unread,
May 25, 2015, 10:49:58 PM5/25/15
to vagra...@googlegroups.com
Hi, Alvaro Miranda Aguilera,

The box I'm running is Snappy Ubuntu Core, I got the box by issuing "vagrant init ubuntu/ubuntu-15.04-snappy-core-stable". 
The following is the vagrant file, basically generated automatically during initialization, I have uncommented:

     1.   config.vm.network "public_network"
to expose the box to external network.

     2.   vb.gui = true
to login in the vagrantbox in Virtualox GUI, to check the IP address obtained, 192.168.0.13 in this case.

     3.  append the config.ssh items at the end of the file
the ssh name "ubuntu" is the default user name for this Snappy Ubuntu Core box, I got to know that in the first time "vagrant up". 
the original ssh ip is 127.0.0.1, which is apparently  not right, so I point it to 192.168.0.13 by config.ssh.host
I can successfully ssh in by private key auth method in Mac OS terminal,  so I configured the  config.ssh.private_key_path option,
but the ssh auth method for vagrant is still "password". How can I configure it to the "private key" method?


# -*- mode: ruby -*-
# vi: set ft=ruby :


# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure(2) do |config|
 
# The most common configuration options are documented and commented below.
 
# For a complete reference, please see the online documentation at
 
# https://docs.vagrantup.com.


 
# Every Vagrant development environment requires a box. You can search for
 
# boxes at https://atlas.hashicorp.com/search.
  config
.vm.box = "ubuntu/ubuntu-15.04-snappy-core-stable"


 
# Disable automatic box update checking. If you disable this, then
 
# boxes will only be checked for updates when the user runs
 
# `vagrant box outdated`. This is not recommended.
 
# config.vm.box_check_update = false


 
# Create a forwarded port mapping which allows access to a specific port
 
# within the machine from a port on the host machine. In the example below,
 
# accessing "localhost:8080" will access port 80 on the guest machine.
 
# config.vm.network "forwarded_port", guest: 80, host: 8080


 
# Create a private network, which allows host-only access to the machine
 
# using a specific IP.
 
# config.vm.network "private_network", ip: "192.168.33.10"


 
# Create a public network, which generally matched to bridged network.
 
# Bridged networks make the machine appear as another physical device on
 
# your network.
   config
.vm.network "public_network", bridge: 'en0: Wi-Fi (AirPort)'


 
# Share an additional folder to the guest VM. The first argument is
 
# the path on the host to the actual folder. The second argument is
 
# the path on the guest to mount the folder. And the optional third
 
# argument is a set of non-required options.
 
# config.vm.synced_folder "../data", "/vagrant_data"


 
# Provider-specific configuration so you can fine-tune various
 
# backing providers for Vagrant. These expose provider-specific options.
 
# Example for VirtualBox:
 
#
   config
.vm.provider "virtualbox" do |vb|
 
#   # Display the VirtualBox GUI when booting the machine
     vb
.gui = true
 
#
 
#   # Customize the amount of memory on the VM:
 
#   vb.memory = "1024"
   
end
 
#
 
# View the documentation for the provider you are using for more
 
# information on available options.


 
# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
 
# such as FTP and Heroku are also available. See the documentation at
 
# https://docs.vagrantup.com/v2/push/atlas.html for more information.
 
# config.push.define "atlas" do |push|
 
#   push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
 
# end


 
# Enable provisioning with a shell script. Additional provisioners such as
 
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
 
# documentation for more information about their specific syntax and use.
 
# config.vm.provision "shell", inline: <<-SHELL
 
#   sudo apt-get update
 
#   sudo apt-get install -y apache2
 
# SHELL


  config
.ssh.username = "ubuntu"
  config
.ssh.host = "192.168.0.13"
  config
.ssh.private_key_path = "/Users/brady/spa/.vagrant/machines/default/virtualbox/private_key"


end



BR,

Brady

Alvaro Miranda Aguilera

unread,
May 26, 2015, 1:58:28 AM5/26/15
to vagra...@googlegroups.com
Hello,

usually Vagrant boxes came with vagrant user

Shor version, it seems ubuntu user is already configured as Vagrant
user for public key, so this is the minimum Vagrantfile that works:

Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/ubuntu-15.04-snappy-core-stable"
config.ssh.username = "ubuntu"
end


Long version:

You usually do this:

z2-3:t kikitux$ vagrant init -m ubuntu/ubuntu-15.04-snappy-core-stable

Then

z2-3:t kikitux$ vagrant up --provider=virtualbox

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'ubuntu/ubuntu-15.04-snappy-core-stable' could not be
found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Loading metadata for box 'ubuntu/ubuntu-15.04-snappy-core-stable'
default: URL:
https://atlas.hashicorp.com/ubuntu/ubuntu-15.04-snappy-core-stable
==> default: Adding box 'ubuntu/ubuntu-15.04-snappy-core-stable'
(v15.04.20150424) for provider: virtualbox

default: Downloading:
https://atlas.hashicorp.com/ubuntu/boxes/ubuntu-15.04-snappy-core-stable/versions/15.04.20150424/providers/virtualbox.box
==> default: Successfully added box
'ubuntu/ubuntu-15.04-snappy-core-stable' (v15.04.20150424) for
'virtualbox'!
==> default: Importing base box 'ubuntu/ubuntu-15.04-snappy-core-stable'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'ubuntu/ubuntu-15.04-snappy-core-stable'
is up to date...
==> default: Setting the name of the VM: t_default_1432619564987_62353
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 => 2200 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2200
default: SSH username: ubuntu
default: SSH auth method: password
default: Warning: Connection timeout. Retrying...
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if its present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
z2-3:t kikitux$


On Tue, May 26, 2015 at 2:49 PM, Brady Lee <jack...@gmail.com> wrote:
> Hi, Alvaro Miranda Aguilera,
Reply all
Reply to author
Forward
0 new messages