SSH pour Vagrant box dans Windows?

J'utilise Vagrant pour démarrer une VirtualBox VM sous windows. Dans d'autres plateformes, je peux juste

$ vagrant ssh

pour se connecter à la VM.

comment se connecter à cette boite vagabonde dans windows?

la façon suggérée dans la documentation vagabonde d'utiliser le mastic ne fonctionnait pas non plus:

http://docs-v1.vagrantup.com/v1/docs/getting-started/ssh.html

167
demandé sur Golo Roden 2012-03-27 11:31:00

22 réponses

j'utilise PuTTY pour me connecter à mes boîtes vagabondes sur Windows7.

assurez-vous

  • convertissez le %USERPROFILE%\.vagrant.d\insecure_private_key en .ppk using PuTTYGen
  • utiliser le .clé ppk dans votre session PuTTY - configurée dans la connexion > SSH > Auth > fichier à clé privée
  • use hôte 127.0.0.1
  • utiliser le port 2222 au lieu de 22
  • vous pouvez définir le nom d'utilisateur par défaut (errant) Sous connexion > SSH > Auth > clé privée pour authentification
236
répondu Dror Bereznitsky 2014-10-04 12:48:26

Vous devez patch certains Vagabond code en modifiant un seul fichier, ssh.rb .

toute l'info est ici: https://gist.github.com/2843680

vagrant ssh fonctionnera désormais aussi sous Windows, comme sous Linux.


modifier : dans les Versions plus récentes, cela est devenu inutile. Vous avez encore à ajouter le chemin votre ssh.exe à votre PATH Variable :

Rechercher ssh.exe sur votre ordinateur, copiez le chemin (i.e. C:\Program Files (x86)\Git\bin ), ouvrez les préférences du système, trouvez la variable D'environnement Paramètres, cliquez sur la Variable de chemin, ajoutez le chemin, séparant les chemins existants en utilisant ; .

119
répondu Michael Field 2017-03-20 10:04:24

une autre option utilisant les binaires git:

  1. installer git: http://git-scm.com/download/win
  2. Menu Démarrer > cmd (maj+entrée pour passer en tant qu'Administrateur)
  3. set PATH=%PATH%;C:\Program Files\Git\usr\bin
  4. vagrant ssh

Espérons que cela aide :)

juste un bonus après des mois en utilisant celui sur Windows: utilisez Console au lieu du terminal Win, vous pouvez donc toujours ouvrir un nouvel onglet terminal avec le chemin défini (configurer sur les options)

95
répondu gabrielhpugliese 2016-02-01 16:57:54

télécharger Putty: http://www.chiark.greenend.org.uk / ~ sgtatham / putty /

avec du mastic.exe:

Putty GUI:

HostName: 127.0.0.1
Port: 2222

Lorsque vous vous connectez(Écran du Terminal):

User: vagrant
Passwd: vagrant

avant d'essayer de vous connecter, vérifiez votre VM en utilisant cmd.exe:

 vagrant status

si elle est en panne, utiliser:

vagrant up
71
répondu Rafael Gorski 2012-10-08 21:09:14

la réponse acceptée est vraiment utile, mais il peut arriver qu'au lieu de la clé suivante:

%USERPROFILE%\.vagrant.d\insecure_private_key

une clé différente doit être convertie au format de la pâte:

{vagrant_machine_root}/.vagrant/machines/default/virtualbox/private_key

{vagrant_machine_root} est un dossier avec le Vagrantfile de la machine à laquelle nous voulons nous connecter en utilisant Putty.

comme @ibizaman a mentionné utiliser vagrant ssh-config pour vérifier quelle clé est utilisée par les vagabonds:

$ 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
27
répondu begie 2017-05-23 12:02:47

Maintenant, vous pouvez également utiliser le plugin suivant pour se connecter en utilisant putty:

https://github.com/nickryand/vagrant-multi-putty

exécuter

vagrant plugin installer vagrant-multi-putty

et assure-toi putty.exe et puttygen.exe sont dans votre CHEMIN d'accès

alors vous pourrez utiliser

vagrant mastic

les exécutables mentionnés ci-dessus sont disponibles à partir de:

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

12
répondu camilohe 2014-08-19 22:59:48

soit

  1. dans votre cmd type de console le suivant:

    set PATH=%PATH%;C:\Program Files (x86)\Git\bin
    

ou

  1. définissez en permanence le chemin dans les variables d'environnement de votre système:

    C:\Program Files (x86)\Git\bin;
    
6
répondu Kripa Jayakumar 2016-05-12 14:16:17

il y a un paquet OpenSSH Pour Windows qui est essentiellement un Cygwin dépouillé. Il dispose d'un installateur msi et (après avoir paramétré votre chemin en conséquence) fonctionne avec "vsagrant ssh":

http://sourceforge.net/projects/opensshwindows/?source=directory

4
répondu Christian Waidner 2014-07-17 07:40:58

maintenant j'ai une bien meilleure solution qui permet la mise à niveau sans douleur Vagrant. Il est basé sur le fichier patché.

la première ligne d'un vagrantfile doit être:

load "vagrantfile_ssh" if Vagrant::Util::Platform.windows?

Et le patché vagrantfile_ssh fichier (à l'origine nommée ssh.rb ) doit exister dans le même répertoire que vagrantfile . C'est à la fois élégante et fonctionnelle.

télécharger le patché vagrantfile_ssh .

2
répondu Michael Field 2013-01-15 15:17:42

personnellement, j'utilise juste Cygwin . Ce qui vous permet d'utiliser de nombreuses commandes communes *nix dans Windows. SSH étant l'un d'eux.

2
répondu Kiksy 2013-07-29 10:51:13
  1. Install Git Bash (livré avec OpenSSH, ainsi que grep , find , perl , sed , etc.;)

    si vous avez Vagrant installé, ouvrez appwiz.cpl (alias Add/Remove Programs) et Repair the Vagrant installation. Cela va faire vagrant s'ajouter à votre chemin git-bash.

  2. Ouvrir Git Bash (Via le menu démarrer)

  3. cd ~/vagrant/mybox à votre dossier vagrant box'es et vagrant ssh
2
répondu ThorSummoner 2014-09-09 20:04:32

je faisais comme suggéré ci-dessus mais en changeant la variable d'environnement sur la ligne de commande seulement avec PATH=%PATH%;"C:\Program files\git\usr\bin "

cela n'a pas fonctionné. Mais quand j'ai modifié la variable D'environnement en paramétrant Windows et que j'ai lancé une invite de commande, ça a marché pour la première fois!

2
répondu Paul Pritchard 2016-11-23 08:16:42

Windows 7 (non testé sur d'autres versions)

  1. clic droit sur "mon ordinateur" et cliquez sur Propriétés
  2. Cliquez Sur Paramètres Système Avancés
  3. , Cliquez Sur Variables D'Environnement
  4. dans la deuxième case sous" Variables du système " faites défiler vers le bas et cliquez sur "Chemin" de la variable et cliquez sur "Modifier
  5. assurez-vous que le chemin est inclus dans la valeur Variable en ajoutant (un point-virgule s'il n'y est pas et) C:\Program Files ( x86)\Git\bin; (ou quel que soit le chemin vers votre ssh.exe) 151960920"
  6. OK > OK et redémarrer WINDOWS
  7. vous devrez courir vagrant vers le haut mais après que vagrant SSH devrait travailler de façon permanente

plus D'informations qui pourraient aider avec d'autres versions ... http://www.computerhope.com/issues/ch000549.htm

1
répondu byronyasgur 2015-01-20 02:18:47

très simple, une fois que vous installez Vagrant manager et virtual box, essayez d'installer cygwin sur windows, mais lors de l'installation de cygwin, assurez-vous de sélectionner le paquet SSH, paquet VIM qui permettra à votre système de se connecter à votre VM à partir de cygwin après avoir fait tourner votre machine à travers vagrant.

1
répondu Prashanth 2016-09-26 05:49:03

note aussi: lorsque l'invite login as: prompt apparaît, entrez "vagrant" comme nom d'utilisateur (sans guillemets). - Snorkpete 28 Juin 12 à 14: 14

ou vous pouvez aller dans la catégorie->connexion->Rlogin et définir le champ 'Auto-login username' en 'Vagrant'.

Enregistrer la session.

0
répondu BadAlgorithm 2013-02-14 17:56:57

j'utilise vagrant ssh avec git ssh sur windows 7, 8.1 et Windows 10.

pour installer seulement télécharger msysgit de page du projet msysgit .

et pour exécuter ssh.exe n'inclure que le bin folter aux variables d'environnement de windows ou installer git à partir de Git Download page et copier le msysgit bin folter à C:\Program Files\Git\bin .

0
répondu Rudy Alcivar 2015-12-26 03:03:47

ajouter les lignes suivantes à votre 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

vagrant_rsa et vagrant_rsa.pub sont les clés privées et publiques situées dans le dossier courant du projet vagrant (et générées par exemple par ssh-keygen -t rsa -C "your@email.here" ) et openssh.ps1 est:

$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/' } |
    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"

qui est une version simplifiée de joefitzgerald/emballeur-windows, openssh script d'installation .

Maintenant vous pouvez vagrant ssh dans les fenêtres boîte.

pour ceux qui utilisent vagrant-libvirt vous voulez peut-être transférer certains ports comme RDP de host à guest. vagrant-libvirt utilise ssh pour port forwarding vous devez donc configurer SSH sur Windows comme dans les instructions ci-dessus et ensuite vous pourrez transférer des ports comme:

config.vm.network :forwarded_port, host: 3389, guest: 3389, id: "rdp", gateway_ports: true, host_ip: '*'
0
répondu mixel 2017-03-09 01:03:22

j'ai également rencontré le même problème avant.

  1. dans le dossier homestead, utilisez bash init.sh .

  2. si vous n'en avez pas .ssh dossier dans D:/Users/your username/ , vous devez obtenir une paire de clés ssh, ssh-keygen -t rsa -C "you@homestead" .

  3. Modifier Homestead.yaml (homestead/), authoriza: ~/.ssh/id_rsa.pub .

  4. 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
  1. , Vous devez utiliser git bash application de bureau .

  2. Ouvrir git bash application de bureau. vagrant up

  3. vagrant ssh

0
répondu JKol 2017-05-04 23:50:05

une autre solution ici, mais seulement pour la boîte virtuelle de windows 10 pour tester l'Explorateur. utilisateur ssh: IEUser ssh pass:Passw0rd!

0
répondu Gustavo 2017-06-05 12:24:59

le dossier d'installation vagrant contient un ssh.exe qui se comporte comme ssh (1) sur linux (prend les mêmes options/arguments).

Pour voir tous les arguments utilisés, vous pouvez exécuter vagrant ssh-config ou vagrant ssh --debug pour une sortie détaillée.

de Powershell:

C:\HashiCorp\Vagrant\embedded\usr\bin/ssh.EXE ubuntu@127.0.0.1 -p 2222 -o LogLevel=FATAL -o DSAAuthentication=yes -o Strict
HostKeyChecking=no -i "C:/Users/path/to/project/.vagrant/machines/default/virtualbox/private_key"

c'est utile dans les situations où vagrant status dit que votre vm est en mode poweroff ou suspended quand vous êtes positif c'est en fait Je cours, pour forcer la connexion ssh.

si vous ne voulez pas vous rappeler/taper la commande ci-dessus, juste l'écrire dans un fichier vagrant.ps1 pour que vous puissiez l'exécuter à partir de votre powershell en utilisant .\vagrant_ssh.ps1

0
répondu rxdazn 2017-11-21 15:49:00

vous pouvez utiliser l'émulateur terminal cmder pour windows.

suivre ci-dessous les étapes pour l'installation:

  1. accès cmder.net;
  2. cliquez sur Télécharger;
  3. Décompresser
  4. (optionnel) placez vos propres fichiers exécutables dans le dossier bin pour être injectés dans votre chemin.
  5. Exécuter Cmder (Cmder.exe) 151960920"

enter image description here

Terminal cmder on Windows

exécute maintenant la commande requise pour les paramètres VM vagrant, pour connect exécute seulement la commande vagrant ssh; Cmder montre offre SSH client intégré.

j'espère que cela aidera.

0
répondu Wanderson Leandro de Oliveira 2018-07-12 18:27:22

je pense qu'une meilleure réponse à cette question serait la suivante:

https://eamann.com/tech/linux-flavored-windows /

Eric a écrit un bel article sur la façon de transformer votre ordinateur windows en un environnement Linux. Même avec des hacks pour obtenir Vim travaillant nativement dans le cmd.

si vous parcourez ce guide, qui vous permet essentiellement d'installer git cli, et avec quelques hacks, vous pouvez faire monter un commandez l'invite et tapez vagrant SSH dans le dossier de votre boîte vagrant et il fera correctement les bonnes choses, pas besoin de configurer les clés SSH etc. Tout ce qui vient avec ssh et le git cli /bin.

la puissance de ceci est que vous pouvez alors réellement exécuter powershell et encore obtenir tout le *nix bonté. Cela simplifie vraiment votre environnement et aide à courir Vagrant et d'autres choses.

TL;DR Download git cli et add git / bin to PATH. Hack vim.chauve-souris dans /bin travailler pour windows. Utilisez SSH nativement dans cmd.

-1
répondu Mark Liu 2014-12-09 15:58:27