А почему HostName 127.0.0.1, а не реальный IP?
Upd:
Да и публичного интерфейса нет.
Я бы сделал так:
ssh_pub_key = File.readlines("../../../id_rsa_vagrant.pub").first.strip
$shell_centos7 = <<-SHELL
echo #{ssh_pub_key} >> /home/vagrant/.ssh/authorized_keys
SHELL
Vagrant.configure("2") do |config|
...
nodeconfig.vm.network "public_network"
...
nodeconfig.vm.provision "shell", inline: $shell_centos7
...
Т.е. добавил бы публичный интерфейс, который получит IP в вашей сети, а не через NAT, и уже коннектился бы по direct IP.