J'utilise Vagrant pour démarrer un VirtualBox VM dans Windows . Sur d'autres plateformes, je peux simplement
$ vagrant ssh
se connecter à la VM.
Comment puis-je me connecter à cette boîte Vagrant dans Windows?
La méthode suggérée dans la documentation de Vagrant pour utiliser PuTTY ne fonctionnait pas non plus:
http://docs-v1.vagrantup.com/v1/docs/getting-started/ssh.html
J'utilise PuTTY pour me connecter à mes boîtes Vagrant sous Windows7.
Assurez-vous
%USERPROFILE%\.vagrant.d\insecure_private_key
en .ppk en utilisant PuTTYGen127.0.0.1
Vous devez patch _ du code Vagrant en modifiant un seul fichier, ssh.rb
.
Toutes les informations sont ici: https://Gist.github.com/2843680
vagrant ssh
fonctionnera désormais aussi sous Windows, tout comme sous Linux.
EDIT: Dans les versions plus récentes, cela est devenu inutile. Vous devez toujours ajouter le chemin d'accès à votre ssh.exe
à votre variable PATH
:
Recherchez ssh.exe sur votre ordinateur, copiez le chemin d’accès (c'est-à-dire C:\Program Files (x86)\Git\bin
), ouvrez les Préférences Système, recherchez la variable d'environnement Paramètres, cliquez sur la variable de chemin d'accès, ajoutez le chemin d'accès, en séparant les fichiers existants. chemins utilisant ;
.
Une autre option utilisant les binaires git:
set PATH=%PATH%;C:\Program Files\Git\usr\bin
vagrant ssh
J'espère que cela t'aides :)
Juste un bonus après des mois d'utilisation sous Windows: utilisez Console au lieu du terminal Win, pour pouvoir toujours ouvrir un nouvel onglet de terminal avec PATH défini (options de configuration le)
Télécharger PuTTY: http://www.chiark.greenend.org.uk/~sgtatham/PuTTY/
Utiliser PuTTY.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 c'est en panne, utilisez:
vagrant up
La réponse acceptée est vraiment utile, mais il peut arriver que, au lieu de la clé suivante:
%USERPROFILE%\.vagrant.d\insecure_private_key
une clé différente doit être convertie au format PuTTY:
{vagrant_machine_root}/.vagrant/machines/default/virtualbox/private_key
Où {vagrant_machine_root}
est un dossier avec la Vagrantfile
de la machine à laquelle nous voulons nous connecter en utilisant PuTTY.
Comme @ibizaman a mentionné, utilisez vagrant ssh-config
pour vérifier quelle clé est utilisée par vagrant:
$ 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
Maintenant, vous pouvez également utiliser le plugin suivant pour vous connecter avec PuTTY:
https://github.com/nickryand/vagrant-multi-PuTTY
Il suffit d'exécuter
vagrant plugin installe vagrant-multi-PuTTY
et assurez-vous que PuTTY.exe et puttygen.exe sont dans votre PATH
Ensuite, vous pourrez utiliser
mastic vagabond
Les exécutables mentionnés ci-dessus sont disponibles auprès de:
http://www.chiark.greenend.org.uk/~sgtatham/PuTTY/download.html
Non plus
Dans votre console cmd
, tapez ce qui suit:
set PATH=%PATH%;C:\Program Files (x86)\Git\bin
OU
Définissez de manière permanente le chemin dans les variables d'environnement de votre système:
C:\Program Files (x86)\Git\bin;
Il existe un paquet OpenSSH pour Windows qui est essentiellement un Cygwin dépouillé. Il a un msi-Installer et (après avoir défini votre chemin en conséquence) fonctionne avec "vsagrant ssh":
http://sourceforge.net/projects/opensshwindows/?source=directory
Personnellement, je viens d'utiliser Cygwin . Ce qui vous permet d'utiliser de nombreuses commandes * nix courantes dans Windows. SSH est l'un d'entre eux.
Je faisais comme suggéré ci-dessus mais en changeant la variable d'environnement sur la ligne de commande uniquement avec PATH =% PATH%; "C:\Program files\git\usr\bin"
Cela n'a pas fonctionné. Mais quand j'ai modifié la variable d'environnement via les paramètres Windows, puis lancé une nouvelle commande, l'invite fonctionnait pour la première fois!
Installer Git Bash (Livré avec OpenSSH, ainsi que grep
name__, find
name__, Perl
name__, sed
name__, etc.;);
Si vous avez installé Vagrant, ouvrez appwiz.cpl
(AKA Ajout/Suppression de programmes) et Repair l'installation Vagrant. Cela fera que vagrant s'ajoute à votre chemin git-bash.
Ouvrez Git Bash (via le menu de démarrage)
cd ~/vagrant/mybox
dans votre dossier de boxeurs vagants et vagrant ssh
Maintenant, j'ai une bien meilleure solution qui permet une mise à niveau indolore de Vagrant . Elle est basée sur un fichier patché.
La première ligne d'un fichier vagrant devrait être:
load "vagrantfile_ssh" if Vagrant::Util::Platform.windows?
Et le fichier vagrantfile_ssh patché (à l'origine nommé ssh.rb) devrait exister dans le même répertoire que vagrantfile. C'est à la fois élégant et fonctionnel.
Téléchargez le patched vagrantfile_ssh .
Windows 7 (non testé sur les autres versions)
Plus d'informations qui pourraient aider avec d'autres versions ... http://www.computerhope.com/issues/ch000549.htm
très simple, une fois que vous avez installé Vagrant Manager et Virtual Box, essayez d’installer cygwin sous Windows, mais assurez-vous de sélectionner le package SSH, package VIM, qui permettra à votre système de se connecter à votre VM. de cygwin après avoir mis en marche votre machine par vagabond.
Une autre solution ici mais uniquement pour la boîte virtuelle de Windows 10 pour tester Explorer . Utilisateur ssh: IEUser Ssh pass: Passw0rd!
J'utilise la commande vagrant ssh
avec git ssh
sous Windows 7, 8.1 et Windows 10.
Pour installer uniquement le téléchargement de msysgit à partir de la page du projet msysgit .
Et pour exécuter ssh.exe
, incluez uniquement les variables d'environnement bin folter
dans Windows ou installez git à partir de Page de téléchargement Git et copiez le msysgit bin folter
dans C:\Program Files\Git\bin
.
Le dossier d'installation vagrant contient un fichier ssh.exe qui se comporte comme ssh (1) sous Linux (prend les mêmes drapeaux/arguments).
Pour voir tous les arguments utilisés, vous pouvez exécuter vagrant ssh-config
ou vagrant ssh --debug
pour une sortie plus détaillée.
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"
Ceci est utile dans les situations où vagrant status
indique que votre machine virtuelle est en mode poweroff
ou suspended
lorsque vous êtes sûr de son exécution, pour forcer la connexion ssh.
Si vous ne voulez pas vous rappeler/taper la commande ci-dessus, écrivez-la dans un fichier vagrant.ps1
pour pouvoir l'exécuter à partir de votre PowerShell en utilisant .\vagrant_ssh.ps1
remarque également: lorsque la connexion en tant que: Invite apparaît, entrez 'vagabond' comme nom d'utilisateur (sans guillemets). - Snorkpete 28 juin 12 à 14:14
Ou vous pouvez aller à Catégorie-> Connexion-> Rlogin et définir le champ "Nom d'utilisateur de connexion automatique" sur "Vagrant".
Enregistrez la session.
Ajoutez 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
où vagrant_rsa
et vagrant_rsa.pub
sont les clés privées et publiques situées dans le dossier du projet vagrant actuel (et générées par exemple par ssh-keygen -t rsa -C "[email protected]"
) 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/$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"
qui est une version simplifiée de joefitzgerald/packer-windows openssh script de configuration .
Vous pouvez maintenant vagrant ssh
dans la fenêtre Windows.
Pour ceux qui utilisent vagrant-libvirt , vous pouvez éventuellement transférer certains ports comme RDP d’hôte à invité. vagrant-libvirt utilise ssh pour le transfert de port vous devez donc configurer ssh sous Windows comme dans les instructions ci-dessus, puis vous pourrez transférer des ports tels que:
config.vm.network :forwarded_port, Host: 3389, guest: 3389, id: "rdp", gateway_ports: true, Host_ip: '*'
J'ai aussi rencontré le même problème avant.
Dans le dossier Homestead, utilisez bash init.sh
.
Si vous n'avez pas de dossier .ssh dans D:/Users/your username/
, vous devez obtenir une paire de clés ssh, ssh-keygen -t rsa -C "you@Homestead"
.
Éditez 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
Vous devez utiliser application de bureau git bash .
Ouvrez l'application de bureau git bash. vagrant up
vagrant ssh
vous pouvez utiliser cmder terminal émulateur pour Windows.
Suivez ci-dessous les étapes pour l'installation:
Terminal cmder sous Windows
Maintenant, exécutez la commande requise pour les paramètres VM vagrant, pour connecter uniquement, exécutez la commande vagrant ssh; Watch cmder propose le client ssh intégré.
J'espère que ça aide.