Vagrant - SSH连接方式

Vagrant VM启动后(vagrant up),ssh连接时,使用下面的命令可以直接连接

方式一

vagrant ssh

该连接默认使用的时OpenSSH连接,如果没安装的话,连接会失败。

方式二

或者通过指定参数,实行普通的ssh连接

PS C:\work\ansible-sample> vagrant ssh-config
Host node1
  HostName 127.0.0.1  ★
  User vagrant  ★
  Port 2201  ★
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Users/user/.vagrant.d/insecure_private_key  ★
  IdentitiesOnly yes
  LogLevel FATAL

指定上面 ★ 的内容 ssh连接

ssh vagrant@127.0.0.1 -p 2201 -i C:/Users/user/.vagrant.d/insecure_private_key

方式三

ssh连接时,每次都要指定参数,比较麻烦,可以使用下面的方式进行快速连接
将ssh-config的内容拷贝到 .ssh/config文件中,直接ssh连接

操作

在当前的VM所在目录下执行下面的命令

vagrant ssh-config >> ~/.ssh/config

也可以指定copy的host
注;此时如果ssh-config内存在多个vm时,所有的host名均被设置为node1

vagrant ssh-config --host node1 >> ~/.ssh/config

测试

连接

PS C:\work\ansible-sample> ssh node1
C:\\Users\\user/.ssh/config: line 1: Bad configuration option: \377\376h
C:\\Users\\user/.ssh/config: terminating, 1 bad configuration options

原因

在window10内通过 Powershell(或者 git cmd等) 创建的该文件默认文件格式是 UTF-16 LE。
Poweshell默认的是文件生成格式时 UTF-16.该格式已经不再使用。
参照 Powershell文件生成格式变更

解决

参照上面的链接,修改文件生成格式

PS C:\work\ansible-sample> $PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'
PS C:\work\ansible-sample> vagrant ssh-config > ~/.ssh/config

连接测试

PS C:\work\ansible-sample> ssh node1
Last login: XXXXX 08:43:22 2019 from 10.0.2.2

成功。


版权声明:本文为oblily原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。