格式:node
vagrant ssh [options] [name|id] [-- extra ssh args]
这将SSH导入正在运行的vagrant机器,并容许你访问机器的shell。shell
userdeMacBook-Pro:~ user$ vagrant ssh -h Usage: vagrant ssh [options] [name|id] [-- extra ssh args] Options: -c, --command COMMAND Execute an SSH command directly 直接执行SSH命令 -p, --plain Plain mode, leaves authentication up to user 普通模式,将身份验证留给用户 -t, --[no-]tty Enables tty when executing an ssh command (defaults to true) 在执行ssh命令时启用tty(默认为true) -h, --help Print this help 打印帮助信息
1.ubuntu
1)在一个简单的vagrant项目中,建立的实例将被命名为default。即不使用实例的名字和使用default获得的结果是同样的,如:ssh
userdeMacBook-Pro:~ user$ vagrant ssh Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64) * Documentation: https://help.ubuntu.com/ New release '14.04.5 LTS' available. Run 'do-release-upgrade' to upgrade to it. Welcome to your Vagrant-built virtual machine. Last login: Mon Dec 24 07:37:13 2018 from 10.0.2.2 vagrant@precise64:~$ logout Connection to 127.0.0.1 closed.
使用default:ide
userdeMacBook-Pro:~ user$ vagrant ssh default Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64) * Documentation: https://help.ubuntu.com/ New release '14.04.5 LTS' available. Run 'do-release-upgrade' to upgrade to it. Welcome to your Vagrant-built virtual machine. Last login: Mon Dec 24 11:26:36 2018 from 10.0.2.2 vagrant@precise64:~$ logout Connection to 127.0.0.1 closed.
可见在同一个项目中都是打开同一个实例ui
2)在多机器设置中,你可使用vagrant状态中显示的名称登陆到每一个vm,如:this
$ vagrant status Current machine states: node1 running (virtualbox) node2 running (virtualbox) This environment represents multiple VMs. The VMs are all listed above with their current state.
$ vagrant ssh node1 Welcome to your Vagrant-built virtual machine. Last login: Fri Sep 14 06:23:18 2012 from 10.0.2.2 vagrant@precise64:~$ logout Connection to 127.0.0.1 closed.
$ vagrant ssh node2 Welcome to your Vagrant-built virtual machine. Last login: Fri Sep 14 06:23:18 2012 from 10.0.2.2 vagrant@precise64:~$ logout Connection to 127.0.0.1 closed.
3)在运行来自不一样项目的机器的系统中,你可使用流浪全局状态中列出的id:spa
userdeMacBook-Pro:~ user$ vagrant global-status id name provider state directory ------------------------------------------------------------------------ 547b2b8 default virtualbox running /Users/user The above shows information about all known Vagrant environments on this machine. This data is cached and may not be completely up-to-date (use "vagrant global-status --prune" to prune invalid entries). To interact with any of the machines, you can go to that directory and run Vagrant, or you can use the ID directly with Vagrant commands from any directory. For example: "vagrant destroy 1a2b3c4d"
而后使用上面显示的id-547b2b8运行机器:命令行
userdeMacBook-Pro:~ user$ vagrant ssh 547b2b8 Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64) * Documentation: https://help.ubuntu.com/ New release '14.04.5 LTS' available. Run 'do-release-upgrade' to upgrade to it. Welcome to your Vagrant-built virtual machine. Last login: Mon Dec 24 11:26:47 2018 from 10.0.2.2 vagrant@precise64:~$ logout Connection to 127.0.0.1 closed.
若是在命令行中找到--(两个连字符),则在此以后的任何参数都将直接传递到ssh可执行文件中。这容许你传递任意命令,以便执行诸如反向隧道深刻到ssh程序中的操做。vagrant
2.SSH客户机使用
vagrant将尝试使用安装在主机上的本地SSH客户机。在POSIX机器上,必须安装SSH客户机,并在路径上可用
对于Windows安装,安装程序镜像中提供了SSH客户机。若是在当前路径上没有找到SSH客户机,vagrant将使用它提供的SSH客户机。根据用于运行vagrant程序的本地环境,安装程序提供的SSH客户机可能没法正常工做。例如,当使用cygwin或msys2 shell时,SSH客户机在交互运行时将没法按预期工做。安装为当前工做环境构建的SSH包将解决这个问题。
3.后台执行
若是你指定的命令在后台运行(例如将&追加到shell命令中),它几乎会当即终止。这是由于,当Vagrant执行该命令时,它将在shell上下文中执行该命令,当shell退出时,全部子进程也将退出。
为了不这种状况,你须要将流程从shell中分离出来。请谷歌了解如何为你的shell执行此操做。其中一种方法是nohup命令。
4.Pageant on Windows
SSH可执行文件将没法访问Windows上的Pageant。虽然vagrant能够经过内部库访问Pageant,可是SSH可执行文件不支持Pageant。这意味着,当使用vagrant ssh命令时,Pageant中的键不可用于转发。