windows - for - vagrant c
¿Caja de SSH a Vagrant en Windows? (21)
también tenga en cuenta: cuando aparece el mensaje de inicio de sesión como :, ingrese ''vagabundo'' como nombre de usuario (sin comillas). - Snorkpete 28 de junio de 12 a 14:14
O puede ir a Categoría-> Conexión-> Rlogin y establecer el campo ''Usuario de inicio de sesión automático'' en ''Vagabundo''.
Guarde la sesión.
Estoy usando Vagrant para iniciar una VM de VirtualBox en Windows. En otras plataformas, puedo simplemente
$ vagrant ssh
para conectarse a la VM
¿Cómo me conecto a este cuadro de Vagrant en Windows?
La forma sugerida en la documentación de Vagrant para usar PuTTy tampoco funcionó:
http://docs-v1.vagrantup.com/v1/docs/getting-started/ssh.html
Instalar http://git-scm.com/download/win (viene con OpenSSH, así como
grep
,find
,perl
,sed
, etc .;)Si tiene Vagrant instalado, abra
appwiz.cpl
(Agregar o quitar programas) y Repare la instalación de Vagrant. Esto hará que vagabundo se agregue a tu camino de git-bash.Abra Git Bash (a través del menú de inicio)
-
cd ~/vagrant/mybox
a su carpeta de cajasvagrant ssh
yvagrant ssh
Agregue las siguientes líneas a su Vagrantfile
:
Vagrant.configure(2) do |config|
# ...
config.ssh.private_key_path = "vagrant_rsa"
config.vm.provision "shell", path: "openssh.ps1"
config.vm.provision "file", source: "./vagrant_rsa.pub", destination: "~/.ssh/authorized_keys"
end
donde vagrant_rsa
y vagrant_rsa.pub
son las claves privadas y públicas ubicadas en la carpeta actual del proyecto vagabundo (y generadas, por ejemplo, por ssh-keygen -t rsa -C "[email protected]"
) y openssh.ps1
es:
$is_64bit = [IntPtr]::size -eq 8
# setup openssh
$ssh_download_url = "http://www.mls-software.com/files/setupssh-7.1p1-1.exe"
if (!(Test-Path "C:/Program Files/OpenSSH/bin/ssh.exe")) {
Write-Output "Downloading $ssh_download_url"
(New-Object System.Net.WebClient).DownloadFile($ssh_download_url, "C:/Windows/Temp/openssh.exe")
Start-Process "C:/Windows/Temp/openssh.exe" "/S /privsep=1 /password=D@rj33l1ng" -NoNewWindow -Wait
}
Stop-Service "OpenSSHd" -Force
# ensure vagrant can log in
Write-Output "Setting vagrant user file permissions"
New-Item -ItemType Directory -Force -Path "C:/Users/vagrant/.ssh"
C:/Windows/System32/icacls.exe "C:/Users/vagrant" /grant "vagrant:(OI)(CI)F"
C:/Windows/System32/icacls.exe "C:/Program Files/OpenSSH/bin" /grant "vagrant:(OI)RX"
C:/Windows/System32/icacls.exe "C:/Program Files/OpenSSH/usr/sbin" /grant "vagrant:(OI)RX"
Write-Output "Setting SSH home directories"
(Get-Content "C:/Program Files/OpenSSH/etc/passwd") |
Foreach-Object { $_ -replace ''/home/(/w+)'', ''/cygdrive/c/Users/$1'' } |
Set-Content ''C:/Program Files/OpenSSH/etc/passwd''
# Set shell to /bin/sh to return exit status
$passwd_file = Get-Content ''C:/Program Files/OpenSSH/etc/passwd''
$passwd_file = $passwd_file -replace ''/bin/bash'', ''/bin/sh''
Set-Content ''C:/Program Files/OpenSSH/etc/passwd'' $passwd_file
# fix opensshd to not be strict
Write-Output "Setting OpenSSH to be non-strict"
$sshd_config = Get-Content "C:/Program Files/OpenSSH/etc/sshd_config"
$sshd_config = $sshd_config -replace ''StrictModes yes'', ''StrictModes no''
$sshd_config = $sshd_config -replace ''#PubkeyAuthentication yes'', ''PubkeyAuthentication yes''
$sshd_config = $sshd_config -replace ''#PermitUserEnvironment no'', ''PermitUserEnvironment yes''
# disable the use of DNS to speed up the time it takes to establish a connection
$sshd_config = $sshd_config -replace ''#UseDNS yes'', ''UseDNS no''
# disable the login banner
$sshd_config = $sshd_config -replace ''Banner /etc/banner.txt'', ''#Banner /etc/banner.txt''
# next time OpenSSH starts have it listen on th eproper port
Set-Content "C:/Program Files/OpenSSH/etc/sshd_config" $sshd_config
Write-Output "Removing ed25519 key as Vagrant net-ssh 2.9.1 does not support it"
Remove-Item -Force -ErrorAction SilentlyContinue "C:/Program Files/OpenSSH/etc/ssh_host_ed25519_key"
Remove-Item -Force -ErrorAction SilentlyContinue "C:/Program Files/OpenSSH/etc/ssh_host_ed25519_key.pub"
# use c:/Windows/Temp as /tmp location
Write-Output "Setting temp directory location"
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "C:/Program Files/OpenSSH/tmp"
C:/Program` Files/OpenSSH/bin/junction.exe /accepteula "C:/Program Files/OpenSSH/tmp" "C:/Windows/Temp"
C:/Windows/System32/icacls.exe "C:/Windows/Temp" /grant "vagrant:(OI)(CI)F"
# add 64 bit environment variables missing from SSH
Write-Output "Setting SSH environment"
$sshenv = "TEMP=C:/Windows/Temp"
if ($is_64bit) {
$env_vars = "ProgramFiles(x86)=C:/Program Files (x86)", `
"ProgramW6432=C:/Program Files", `
"CommonProgramFiles(x86)=C:/Program Files (x86)/Common Files", `
"CommonProgramW6432=C:/Program Files/Common Files"
$sshenv = $sshenv + "`r`n" + ($env_vars -join "`r`n")
}
Set-Content C:/Users/vagrant/.ssh/environment $sshenv
# record the path for provisioners (without the newline)
Write-Output "Recording PATH for provisioners"
Set-Content C:/Windows/Temp/PATH ([byte[]][char[]] $env:PATH) -Encoding Byte
# configure firewall
Write-Output "Configuring firewall"
netsh advfirewall firewall add rule name="SSHD" dir=in action=allow service=OpenSSHd enable=yes
netsh advfirewall firewall add rule name="SSHD" dir=in action=allow program="C:/Program Files/OpenSSH/usr/sbin/sshd.exe" enable=yes
netsh advfirewall firewall add rule name="ssh" dir=in action=allow protocol=TCP localport=22
Start-Service "OpenSSHd"
que es la versión simplificada de joefitzgerald / packer-windows openssh setup script .
Ahora puede vagrant ssh
en el cuadro de Windows.
Para aquellos que usan vagrant-libvirt posiblemente desee reenviar algunos puertos como RDP de host a invitado. vagrant-libvirt usa ssh para reenviar puertos, por lo que necesita configurar ssh en Windows como en las instrucciones anteriores y luego podrá reenviar puertos como:
config.vm.network :forwarded_port, host: 3389, guest: 3389, id: "rdp", gateway_ports: true, host_ip: ''*''
Ahora también puede usar el siguiente complemento para conectarse usando masilla:
https://github.com/nickryand/vagrant-multi-putty
Simplemente ejecuta
plugin vagabundo instalar vagabundo-multi-masilla
y asegúrese de que putty.exe y puttygen.exe estén en su RUTA
Entonces podrás usar
vagabundo masilla
Los ejecutables mencionados anteriormente están disponibles en:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Ahora tengo una solución mucho mejor que permite la actualización de Vagrant sin problemas. Se basa en un archivo parcheado.
La primera línea de un archivo vagrant debería ser:
load "vagrantfile_ssh" if Vagrant::Util::Platform.windows?
Y el archivo patgrabado vagrantfile_ssh (originalmente llamado ssh.rb ) debería existir en el mismo directorio que vagrantfile . Esto es elegante y funcional.
Descargue el parche vagrantfile_ssh .
Creo que una mejor respuesta a esta pregunta sería la siguiente:
https://eamann.com/tech/linux-flavored-windows/
Eric escribió un buen artículo sobre cómo convertir su computadora con Windows en un entorno Linux. Incluso con hacks para que Vim trabaje de forma nativa en cmd.
Si revisas esta guía, que básicamente te lleva a instalar git cli, y con algunos hacks, puedes abrir un símbolo del sistema y escribir vagabundo ssh en la carpeta de tu caja vagabunda y hará las cosas correctas, sin problemas. necesita configurar claves ssh, etc. Todo lo que viene con ssh y el git cli / bin.
El poder de esto es que puedes ejecutar PowerShell y obtener toda la bondad * nix. Esto realmente simplifica su entorno y ayuda a ejecutar Vagrant y otras cosas.
TL; DR Descargue Git cli y agregue git / bin a PATH. Hackear vim.bat en / bin para trabajar en Windows. Usa ssh nativamente en cmd.
Debe parchar un código Vagrant modificando solo un archivo, ssh.rb
Toda la información está aquí: https://gist.github.com/2843680
vagrant ssh
ahora funcionará también en Windows, al igual que en Linux.
EDITAR : en versiones más nuevas esto se hizo innecesario. Aún debe agregar la ruta de su ssh.exe
a su variable PATH
:
Busque ssh.exe en su computadora, copie la ruta (es decir, C:/Program Files (x86)/Git/bin
), abra Preferencias del Sistema, encuentre la Configuración de variables de entorno , haga clic en la Variable de ruta, agregue la ruta, separando rutas existentes usando ;
.
Descargar Putty: http://www.chiark.greenend.org.uk/~sgtatham/putty/
Usando putty.exe:
GUI de masilla:
HostName: 127.0.0.1
Port: 2222
Cuando se conecta (pantalla de terminal):
User: vagrant
Passwd: vagrant
Antes de intentar conectarse, verifique su VM utilizando cmd.exe:
vagrant status
Si está bajo uso:
vagrant up
Estaba haciendo lo sugerido anteriormente pero cambiando la variable de entorno en la línea de comando solo con PATH =% PATH%; "C: / Archivos de programa / git / usr / bin"
Esto no funcionó. Pero cuando modifiqué la variable de entorno a través de la configuración de Windows y luego inicié un nuevo símbolo del sistema, ¡funcionó por primera vez!
Hay un paquete OpenSSH para Windows que básicamente es un Cygwin desarmado. Tiene un msi-Installer y (después de establecer su ruta en consecuencia) funciona con "vsagrant ssh":
http://sourceforge.net/projects/opensshwindows/?source=directory
La carpeta de instalación vagabunda contiene un ssh.exe que se comporta como ssh (1) en Linux (toma los mismos indicadores / argumentos).
Para ver todos los argumentos utilizados, puede ejecutar vagrant ssh-config
o vagrant ssh --debug
para una salida más detallada.
de Powershell:
C://HashiCorp//Vagrant//embedded//usr//bin/ssh.EXE [email protected] -p 2222 -o LogLevel=FATAL -o DSAAuthentication=yes -o Strict
HostKeyChecking=no -i "C:/Users/path/to/project/.vagrant/machines/default/virtualbox/private_key"
Esto es útil en situaciones en las que el vagrant status
dice que tu vm está en modo poweroff
o suspended
cuando estás seguro de que se está ejecutando, para forzar la conexión ssh.
Si no desea recordar / escribir el comando anterior, juste escríbalo en un archivo vagrant.ps1
para que pueda ejecutarlo desde su Powershell usando ./vagrant_ssh.ps1
La respuesta aceptada es realmente útil, pero puede suceder que en lugar de la siguiente clave:
%USERPROFILE%/.vagrant.d/insecure_private_key
una clave diferente debe convertirse al formato de la Putty:
{vagrant_machine_root}/.vagrant/machines/default/virtualbox/private_key
Donde {vagrant_machine_root}
es una carpeta con el Vagrantfile
de la máquina a la que queremos conectar usando Putty.
Como @ibizaman mencionó use vagrant vagrant ssh-config
para verificar qué tecla usa vagabundo:
$ vagrant ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile c:/dev/test/.vagrant/machines/default/virtualbox/private_key <-- HERE IS THE KEY YOU NEED TO CONVERT TO THE PUTTY FORMAT
IdentitiesOnly yes
LogLevel FATAL
Otra opción usando git binaries:
- Instalar git: http://git-scm.com/download/win
- Menú de Inicio> cmd (shift + enter para ir como Administrador)
-
set PATH=%PATH%;C:/Program Files/Git/usr/bin
-
vagrant ssh
Espero que esto ayude :)
Solo una bonificación después de meses usando eso en Windows: use la Console lugar del terminal Win, para que siempre pueda abrir una nueva pestaña de terminal con el conjunto PATH (configúrelo en las opciones)
Otra solución aquí, pero solo para la caja virtual de Windows 10 para probar el explorador. usuario ssh: IEUser ssh pass: Passw0rd!
Personalmente, solo uso Cygwin . Lo que le permite usar muchos comandos * nix comunes en Windows. SSH es uno de ellos.
También conocí el mismo problema antes.
En la carpeta homestead, use
bash init.sh
Si no tiene la carpeta .ssh en
D:/Users/your username/
, necesita obtener un par de clavesssh-keygen -t rsa -C "you@homestead"
,ssh-keygen -t rsa -C "you@homestead"
.Editar Homestead.yaml (homestead /),
authoriza: ~/.ssh/id_rsa.pub
.keys: - ~/.ssh/id_rsa
5.
folders:
- map: (share directory path in the host computer)
to: /home/vagrant/Code
sites:
- map: homestead.app
to: /home/vagrant/Code
Necesitas usar la aplicación de escritorio git bash .
Abra la aplicación de escritorio git bash.
vagrant up
vagrant ssh
Uso PuTTY para conectarme a mis cajas de Vagrant en Windows7.
Asegúrese
- convierta el
%USERPROFILE%/.vagrant.d/insecure_private_key
en .ppk usando PuTTYGen - use la clave .ppk en su sesión PuTTY - configurada en Conexión> SSH> Auth> Archivo de clave privada
- use el host
127.0.0.1
- use el puerto 2222 en lugar de 22
- puede configurar el nombre de usuario predeterminado (vagabundo) en Conexión> SSH> Auth> Clave privada para la autenticación
Yo uso el comando vagrant ssh
con git ssh
en Windows 7, 8.1 y Windows 10.
Para instalar solo descarga msysgit desde la página del proyecto msysgit .
Y para ejecutar ssh.exe
solo incluya el bin folter
a las variables de entorno de windows o instale git desde la página de descarga de Git y copie el msysgit bin folter
a C:/Program Files/Git/bin
.
muy simple, una vez que instale Vagrant manager y la caja virtual, intente instalar cygwin en Windows pero mientras instala cygwin, asegúrese de seleccionar el paquete SSH, paquete VIM que permitirá que su sistema inicie sesión en su máquina virtual desde cygwin luego de hacer girar su máquina vagabundo.
Windows 7 (no probado en otras versiones)
- Haga clic derecho en "Mi PC" y haga clic en Propiedades
- Haga clic en Configuración avanzada del sistema
- Haga clic en variables de entorno
- En el segundo cuadro en "Variables del sistema" desplácese hacia abajo y haga clic en la variable "Ruta" y haga clic en EDITAR
- Asegúrese de que la ruta esté incluida en el valor variable al agregar (un punto y coma si no está allí y) C: / Archivos de programa (x86) / Git / bin; (o lo que sea que sea la ruta a su ssh.exe)
- Aceptar> Aceptar> Aceptar y reiniciar WINDOWS
- Tendrás que ejecutar vagabundo pero después de eso vagabundo ssh debería funcionar permanentemente
Más información que podría ayudar con otras versiones ... http://www.computerhope.com/issues/ch000549.htm
Ya sea
En su consola de
cmd
, escriba lo siguiente:set PATH=%PATH%;C:/Program Files (x86)/Git/bin
O
Establezca permanentemente la ruta en las variables de entorno de su sistema:
C:/Program Files (x86)/Git/bin;