版权声明:本文为Buddy Yuan原创文章,未经允许不得转载。原文地址:VAGRANT通过SECURE CRT连接
前面两篇文章介绍的是在CMD或者是PowerShell环境下登陆到虚拟机的,用这工具本身没什么问题,但是奇怪的是进入到sqlplus里面之后就没有了后退键,输入错了东西,只能换行再次输入,让人非常的恼火。而且默认配置的SSH,是127.0.0.1的,如果同时操作多台虚拟机,不太方便。这就要求我们在给虚拟机配置一个新的IP,方便我们连接。
默认VAGRANT采取了三种网络配置,一种是端口映射,第二种是私有网络,第三种是公有网络。
a.端口映射就是我配置一个端口映射的规则,然后我访问指定的端口,VAGRANT会帮助我转发到虚拟机端口上处理。配置方法如下:
config.vm.network "forwarded_port", guest: 80, host: 8080
这样虚拟机guest的80端口映射宿主机host的8080端口.
b.私有网络,就是配置一个私有的IP地址,用于宿主机和虚拟机之间的访问,如果多个虚拟机设置的是相同的网段,那么这些虚拟机也可以互相访问。
config.vm.network "private_network", ip: "192.168.56.91"
c.公有网络。设置公有网络,不仅仅是宿主机可以访问,它也拥有一个静态的IP,这样整个网段的人都可以访问VAGRANT创建的虚拟机。
config.vm.network "public_network", ip: "192.168.2.25"
在这三种模式里面,我选择了第二种。因为第二种比较方便我们自己通过像SecureCRT这种软件进行连接。首先我们需要找到配置文件,在我们通过git clone的目录下面:G:\VM DATA\vagrant-boxes\OracleDatabase\18.3.0。有一个名字叫做Vagrantfile的文件,添加下列配置,然后重启虚拟机。
config.vm.network "private_network", ip: "192.168.56.91" vagrant halt b1be299 vagrant up b1be299
此时我们通过ping就可以ping通192.168.56.91这个地址了。但是问题是我们没办法直接ssh连接。我们可以通过vagrant ssh-config查看当前ssh的配置,当前的配置是127.0.0.1,用户是vagrant,端口是2222,但是我们使用SecureCRT输入这些也连接不了。
C:\Users\Administrator>vagrant ssh-config b1be299 Host oracle-18c-vagrant HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile "G:/VM DATA/vagrant-boxes/OracleDatabase/18.3.0/.vagrant/machines/oracle-18c-vagrant/virtualbox/private_key" IdentitiesOnly yes LogLevel FATAL
在用SecureCRT连接的时候一直报Permission denied (publickey,gssapi-keyex,gssapi-with-mic)。这里总是要找public key。而默认我们使用vagrant ssh都是免密码登陆的。为了避免这个麻烦,需要将/etc/ssh/sshd_conf中的PasswordAuthentication no改为PasswordAuthentication yes。同时设置下vagrant的密码。就可以通过192.168.56.91登陆了。