กล่อง SSH ไปยัง Vagrant ใน Windows?


172

ฉันใช้ Vagrant เพื่อเริ่ม VirtualBox VM ใน windows ในแพลตฟอร์มอื่น ๆ ฉันทำได้

$ vagrant ssh

เพื่อเชื่อมต่อกับ VM

ฉันจะเชื่อมต่อกับกล่อง Vagrant นี้ในหน้าต่างได้อย่างไร

วิธีที่แนะนำในเอกสาร Vagrant ที่จะใช้ PuTTy ก็ไม่ได้ผล:

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


2
บทช่วยสอนขนาดใหญ่เกี่ยวกับเรื่องนี้ซึ่งมีวิธีการ SSH ไปยังกล่อง Vagrant ใน Windows 7/8
Sliq

11
นี่ไม่ใช่ปัญหาอีกต่อไป หากคุณมี ssh.exe ในเส้นทางของคุณ (เช่น c: \ Program Files \ git \ bin) แสดงว่า 'vagrant ssh' ทำงานได้
Omri Spector

1
FYI Vagrant ไม่รวม ssh due to licensing reasons. It seems possible but until a lawyer gives the go-ahead on this, we're not gong to do this. Ship ssh.exe โดยค่าเริ่มต้นในตัวติดตั้ง Windows ... ทำให้ฉันงงงวย
KCD

คำตอบ:


243

ฉันใช้ PuTTY เพื่อเชื่อมต่อกับกล่อง Vagrant ของฉันบน Windows7

ทำให้แน่ใจว่าคุณ

  • แปลงเป็น. %USERPROFILE%\.vagrant.d\insecure_private_keyppt โดยใช้PuTTYGen
  • ใช้คีย์. pkk ในเซสชัน PuTTY ของคุณ - กำหนดค่าในการเชื่อมต่อ> SSH> รับรองความถูกต้อง> ไฟล์คีย์ส่วนตัว
  • ใช้โฮสต์ 127.0.0.1
  • ใช้พอร์ต 2222 แทน 22
  • คุณสามารถตั้งค่าชื่อผู้ใช้เริ่มต้น (คนจรจัด) ภายใต้การเชื่อมต่อ> SSH> รับรองความถูกต้อง> รหัสส่วนตัวสำหรับการตรวจสอบ

28
หมายเหตุด้วย: เมื่อพรอมต์ล็อกอินเป็น: ปรากฏขึ้นให้ป้อน 'คนพเนจร' เป็นชื่อผู้ใช้ (โดยไม่ใส่เครื่องหมายอัญประกาศ)
snorkpete

5
จากนั้นทำเช่นนั้นสำหรับ VM ทุกตัวใน Vagrant คุณรู้ไหมว่า Vagrant ทำงานร่วมกับ VM หลายเครื่อง ดังนั้นเพียงใช้ทางออกที่เหมาะสมไม่ใช่วิธีแก้ปัญหา: มีคำตอบของฉันด้านล่าง แพทช์เล็ก ๆ ใน Vagrant
Michael Field

20
คุณสามารถตั้งค่าชื่อผู้ใช้เริ่มต้นภายใต้Connection > Data > Auto-login usernameและการตั้งค่า PPK อยู่ภายใต้Connection > SSH > Auth > Private key for authentication
mpen

1
หากคุณต้องการทำเช่นนี้เพื่อรักษาความปลอดภัยให้กุญแจส่วนตัวของคุณด้วยรหัสผ่านอาจเป็นการง่ายกว่าในการใช้แอพ pageant.exe ในระยะยาวเมื่อเริ่มต้นโหลดไฟล์ ppk ของคุณลงในนั้น จากนั้นคุณป้อนรหัสผ่านของคุณเพื่อเข้าประกวดหนึ่งครั้งและคุณสามารถเข้าสู่ระบบได้โดยไม่ต้องระบุรหัสผ่าน ppk ใน terminal putty ทุกครั้ง
Larry Silverman

8
คุณสามารถใช้vagrant ssh-configเพื่อรู้ว่าตัวเลือกที่จะมอบให้กับผงสำหรับอุดรู
ibizaman

121

คุณต้องแก้ไขรหัส Vagrant บางส่วนโดยการแก้ไขไฟล์เดียวเท่านั้น, ssh.rb.

ข้อมูลทั้งหมดอยู่ที่นี่: https://gist.github.com/2843680

vagrant ssh จะใช้งานได้กับ Windows เช่นเดียวกับใน Linux


แก้ไข : ในรุ่นที่ใหม่กว่านี้ไม่จำเป็น คุณยังต้องเพิ่มเส้นทางไปssh.exeยังPATHตัวแปรของคุณ :

ค้นหาssh.exeบนคอมพิวเตอร์ของคุณคัดลอกเส้นทาง (คือC:\Program Files (x86)\Git\bin) เปิดการตั้งค่าระบบหาตัวแปรสภาพแวดล้อมของ;การตั้งค่าคลิกบนตัวแปรเส้นทางเพิ่มเส้นทางแยกเส้นทางที่มีอยู่โดยใช้


1
กรุณาแสดงความคิดเห็นในคำขอดึง Github สำหรับปัญหาหากคุณใช้งานนี้มันเป็นเวลาที่ได้รับการผสาน github.com/mitchellh/vagrant/pull/933
คอรีดอลฟิ

4
ดูเหมือนว่าจะมีการรวมกันประมาณสามเดือนที่ผ่านมา มีอยู่ในรุ่น 1.2.2 แน่นอน
โยฮัน

สิ่งนี้ยังคงเป็นสิ่งจำเป็นหรือได้รับการแก้ไขในช่วง Vagrant ล่าสุดหรือไม่?
Alex

2
@Alex มันได้รับการแก้ไขเป็น Vagrant รุ่นล่าสุดอย่างแน่นอน ฉันทดสอบและบันทึกไว้ที่นี่: robertpate.net/blog/2013/…
robertpateii

1
กำหนดเส้นทางไปยังคอมไพล์ OpenSSH ของคุณอย่างรวดเร็วเปิด PowerShell และเรียกใช้: [Environment]::SetEnvironmentVariable("Path", "$env:Path;c:\Program Files (x86)\Git\bin\", "User")
Janusz Skonieczny

96

ตัวเลือกอื่นโดยใช้ไบนารี git:

  1. ติดตั้ง git: http://git-scm.com/download/win
  2. เมนูเริ่ม> cmd (shift + enter เพื่อไปเป็นผู้ดูแลระบบ)
  3. set PATH=%PATH%;C:\Program Files\Git\usr\bin
  4. vagrant ssh

หวังว่าจะช่วย :)

โบนัสเพียงเดือนหลังจากการใช้งานบน Windows: ใช้คอนโซลแทนเทอร์มินัล Win เพื่อให้คุณสามารถเปิดแท็บเทอร์มินัลใหม่พร้อมชุดเส้นทาง (กำหนดค่าตัวเลือก)


มีคนโหวตให้คำตอบนี้ พยายามคิดว่าฉันทำงานนี้ได้อย่างไรตอนนี้ฉันรู้แล้ว! ขอบคุณ
RadiantHex

มันใช้ได้ดีสำหรับฉัน เนื่องจากฉันมี GIT มันจึงทำงานได้ดีกว่าและเปลี่ยนเป็น Putty เนื่องจากคุณสามารถนำหน้าต่างคอนโซลเดียวกันมาใช้ซ้ำได้
Bartvds

2
ขอบคุณ แต่ตอนนี้ผมใช้conemu มันคล้ายกัน แต่มีความยืดหยุ่นมากกว่าคอนโซล ฉันมีมันห่อคอนโซลหลายอย่างเช่น cmd.exe คอมไพล์ทุบตีและฉาบด้วย alliases และสิ่งแฟนซีอื่น ๆ
Bartvds

4
สำหรับ Git 2.5.0 PATH ควรเป็น "C: \ Program Files \ Git \ usr \ bin"
vladimir

1
ตั้งค่า PATH =% PATH%; C: \ Program Files \ Git \ usr \ bin ทำงานได้สมบูรณ์แบบ! ขอบคุณ!
v.babak

72

ดาวน์โหลด Putty: http://www.chiark.greenend.org.uk/~sgtatham/putty/

ใช้ putty.exe:

Putty GUI:

HostName: 127.0.0.1
Port: 2222

เมื่อคุณเชื่อมต่อ (หน้าจอเทอร์มินัล):

User: vagrant
Passwd: vagrant

ก่อนที่คุณจะพยายามเชื่อมต่อให้ตรวจสอบ VM ของคุณโดยใช้ cmd.exe:

 vagrant status

หากใช้งานไม่ได้:

vagrant up

1
สิ่งนี้แสดงให้เห็นอย่างสมบูรณ์ถึงวิธีที่จะไม่หลงทางคำพูด น่าทึ่งขอบคุณ!
appoll

31

คำตอบที่ได้รับการยอมรับเป็นประโยชน์จริงๆ แต่มันอาจจะเกิดขึ้นว่าแทนที่จะสำคัญดังต่อไปนี้:

%USERPROFILE%\.vagrant.d\insecure_private_key

ต้องเปลี่ยนคีย์อื่นเป็นรูปแบบของ Putty:

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

ที่ไหน{vagrant_machine_root}เป็นโฟลเดอร์ที่มีเป็นVagrantfileของเครื่องที่เราต้องการที่จะเชื่อมต่อกับการใช้สีโป๊ว

ดังที่ @ibizaman กล่าวถึงการใช้งานvagrant ssh-configเพื่อตรวจสอบว่าผู้ใช้คนสำคัญคนใดใช้คีย์:

$ 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

4
หากคุณต้องการใช้งานโป๊วนี่เป็นคำตอบที่ดีที่สุด คุณต้องแปลงคีย์ส่วนตัวที่ถูกต้อง ขอบคุณมาก!
johnzachary

1
ควรกล่าวถึงว่าคุณควรตรวจสอบUserค่าและตรวจสอบให้แน่ใจว่าคุณได้ระบุให้กับ Putty ในการเชื่อมต่อ -> ข้อมูล -> ชื่อผู้ใช้เข้าสู่ระบบอัตโนมัติ บน VM ของฉันชื่อเป็นubuntuและฉันได้รับซ้ำ ๆ vagrantพยายามและความล้มเหลวในการเข้าสู่ระบบเป็น
perlyking

11

ตอนนี้คุณสามารถใช้ปลั๊กอินต่อไปนี้เพื่อเชื่อมต่อโดยใช้ผงสำหรับอุดรู:

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

เพียงแค่รัน

ปลั๊กอินคนจรจัดติดตั้ง Vagrant หลายสีโป๊ว

และตรวจสอบให้แน่ใจว่า putty.exe และ puttygen.exe อยู่ในเส้นทางของคุณ

จากนั้นคุณจะสามารถใช้

ผงสำหรับอุดรูเร่

executables ที่กล่าวถึงข้างต้นมีให้จาก:

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


6

ทั้ง

  1. ในcmdคอนโซลของคุณพิมพ์ต่อไปนี้:

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

หรือ

  1. กำหนดเส้นทางในตัวแปรสภาพแวดล้อมระบบของคุณอย่างถาวร:

    C:\Program Files (x86)\Git\bin;
    

4

มีแพ็คเกจ OpenSSH สำหรับ Windows ซึ่งเป็น Cygwin ที่ถูกปล้น มี msi-Installer และ (หลังจากตั้งค่าพา ธ ของคุณตามลำดับ) จะทำงานกับ "vsagrant ssh":

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


นี่เป็นทางออกที่ดีที่สุดสำหรับฉัน ลิงค์ที่คุณให้ยังไม่ได้รับการปรับปรุงตั้งแต่ปี 2010 มีรุ่นล่าสุดเพิ่มเติมที่mls-software.com/opensshd.html
icc97

2

ตอนนี้ฉันมีทางออกที่ดีกว่ามากที่เปิดใช้งานอัพเกรด Vagrant ที่ไม่เจ็บปวด มันขึ้นอยู่กับไฟล์ที่แพทช์

บรรทัดแรกของ vagrantfile ควรเป็น:

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

และ patched vagrantfile_sshไฟล์ (ชื่อ originaly ssh.rb ) ควรมีอยู่ในไดเรกทอรีเดียวกันกับvagrantfile นี่คือทั้งหรูหราและใช้งานได้

ดาวน์โหลดvagrantfile_ssh patched


2
  1. ติดตั้งGit Bash (มาพร้อมกับ OpenSSH เช่นเดียวกับgrep, find, perl, sedฯลฯ .;)

    หากคุณติดตั้ง Vagrant ให้เปิดappwiz.cpl(AKA Add / Remove Programs) และRepairการติดตั้ง Vagrant สิ่งนี้จะทำให้คนเร่ร่อนเพิ่มตัวเองในเส้นทางของคุณ

  2. Open Git Bash (ผ่านเมนูเริ่ม)

  3. cd ~/vagrant/mybox ไปยังโฟลเดอร์ boxrant ของคนจรจัดและ vagrant ssh

2

ฉันได้ทำตามที่แนะนำข้างต้น แต่การเปลี่ยนแปลงตัวแปรสภาพแวดล้อมในบรรทัดคำสั่งเฉพาะกับ PATH =% PATH%; "C: \ Program files \ git \ usr \ bin"

สิ่งนี้ไม่ทำงาน แต่เมื่อฉันแก้ไขตัวแปรสภาพแวดล้อมผ่านการตั้งค่า Windows จากนั้นเริ่มพรอมต์คำสั่งใหม่มันทำงานครั้งแรก!


1

ส่วนตัวผมเพียงแค่ใช้Cygwin ซึ่งช่วยให้คุณใช้คำสั่ง * คำสั่งทั่วไปจำนวนมากใน Windows SSH เป็นหนึ่งในนั้น


คุณจะต้องแก้ไขเส้นทางของคุณเพื่อรวมไดเรกทอรี Cygwin bin สิ่งที่ต้องการset PATH=%PATH%;c:\cygwin\bin
David Soroko

1

Windows 7 (ไม่ได้ทดสอบในรุ่นอื่น)

  1. คลิกขวาที่ "My Computer" และคลิกที่ Properties
  2. คลิกการตั้งค่าระบบขั้นสูง
  3. คลิกตัวแปรสภาพแวดล้อม
  4. ในช่องที่สองภายใต้ "ตัวแปรระบบ" เลื่อนลงและคลิกที่ตัวแปร "เส้นทาง" และคลิกแก้ไข
  5. ตรวจสอบให้แน่ใจว่าเส้นทางนั้นรวมอยู่ในค่าตัวแปรโดยการต่อท้าย (เซมิโคลอนหากไม่อยู่ที่นั่นและ) C: \ Program Files (x86) \ Git \ bin; (หรืออะไรก็ตามที่เป็นเส้นทางไปยัง ssh.exe ของคุณ)
  6. ตกลง> ตกลง> ตกลงและรีสตาร์ท WINDOWS
  7. คุณจะต้องวิ่งออกไปคนละทิศละทาง แต่หลังจากคนจรจัดนั้นควรทำงานอย่างถาวร

ข้อมูลเพิ่มเติมซึ่งอาจช่วยในเวอร์ชันอื่น ๆ ... http://www.computerhope.com/issues/ch000549.htm


1

ง่ายมากเมื่อคุณติดตั้งผู้จัดการ Vagrant และกล่องเสมือนลองติดตั้ง cygwin บน windows แต่ในขณะที่ติดตั้ง cygwin ให้แน่ใจว่าได้เลือกแพ็คเกจ SSH แพ็คเกจ VIM ซึ่งจะช่วยให้ระบบของคุณเข้าสู่ระบบ VM จาก cygwin หลังจากปั่นเครื่องผ่าน คนจรจัด


นี่คือคำตอบที่ดีที่สุดที่นี่ Cygwin จะทำให้คุณรู้สึกเหมือนเทอร์มินัลทำงานได้ดี ! น่ากลัว
Neoraptor

1

คุณสามารถใช้เทอร์มินัลจำลองสำหรับหน้าต่าง

ทำตามขั้นตอนด้านล่างสำหรับการติดตั้ง:

  1. เข้าถึง cmder.net;
  2. คลิกดาวน์โหลดเต็ม
  3. เปิดเครื่องรูด
  4. (ทางเลือก) วางไฟล์ปฏิบัติการของคุณลงในโฟลเดอร์ bin เพื่อแทรกลงใน PATH ของคุณ
  5. เรียกใช้ Cmder (Cmder.exe)

ป้อนคำอธิบายรูปภาพที่นี่

เทอร์มินัล cmder บน Windows

ตอนนี้รันคำสั่งที่จำเป็นสำหรับการตั้งค่า VM vagrant สำหรับการเชื่อมต่อเท่านั้นรันคำสั่ง vagrant ssh; Watch cmder ให้บริการไคลเอ็นต์ ssh แบบฝัง

ฉันหวังว่านี่จะช่วยได้.


0

หมายเหตุด้วย: เมื่อพรอมต์ล็อกอินเป็น: ปรากฏขึ้นให้ป้อน 'คนพเนจร' เป็นชื่อผู้ใช้ (โดยไม่ใส่เครื่องหมายอัญประกาศ) - Snorkpete 28 มิ.ย. 55 เวลา 14:14 น

หรือคุณสามารถไปที่หมวดหมู่ -> การเชื่อมต่อ -> Rlogin และตั้งค่าฟิลด์ 'ชื่อผู้ใช้ในการเข้าสู่ระบบอัตโนมัติ' เป็น 'Vagrant'

บันทึกเซสชัน


ดีที่สุดในการตรวจสอบผลลัพธ์ของvagrant ssh-configการตรวจสอบให้แน่ใจว่านี่เป็นชื่อผู้ใช้ที่ถูกต้อง: บน VM, ubuntu / xenial64 ของฉันมันเป็นubuntu
perlyking

0

ฉันใช้vagrant sshคำสั่งด้วยgit sshบน windows 7, 8.1 และ Windows 10

การติดตั้งเพียงดาวน์โหลด msysgit จากหน้าโครงการ msysgit

และเรียกssh.exeรวมเฉพาะbin folterกับหน้าต่างตัวแปรสภาพแวดล้อมหรือติดตั้งคอมไพล์จากGit หน้าดาวน์โหลดและคัดลอกไปmsysgit bin folter C:\Program Files\Git\bin


0

เพิ่มบรรทัดต่อไปนี้ใน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และvagrant_rsa.pubเป็นกุญแจส่วนตัวและกุญแจสาธารณะที่อยู่ในโฟลเดอร์โครงการคนจรจัดในปัจจุบัน (และสร้างเช่นโดยssh-keygen -t rsa -C "your@email.here") และopenssh.ps1เป็น:

$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"

ซึ่งเป็นรุ่นที่เรียบง่ายของjoefitzgerald / บรรจุหีบห่อหน้าต่าง OpenSSH สคริปต์การติดตั้ง

ตอนนี้คุณสามารถvagrant sshเข้าไปในกล่อง Windows

สำหรับผู้ที่ใช้vagrant-libvirtคุณอาจต้องการส่งต่อพอร์ตบางอย่างเช่น RDP จากโฮสต์ไปยังแขก vagrant-libvirt ใช้ ssh สำหรับการส่งต่อพอร์ตดังนั้นคุณต้องติดตั้ง ssh บน Windows เหมือนในคำแนะนำข้างต้นแล้วคุณจะสามารถส่งต่อพอร์ตเช่น:

config.vm.network :forwarded_port, host: 3389, guest: 3389, id: "rdp", gateway_ports: true, host_ip: '*'

ไม่ทำงานสำหรับฉัน ฉันต้องการรหัสผ่านเมื่อใช้งาน ssh-keygen หรือไม่?
หาด Jared

@JaredBeach ไม่ไม่ต้องป้อนวลีรหัสผ่านเมื่อสร้างรหัส
mixel

0

ฉันยังพบปัญหาเดียวกันก่อน

  1. bash init.shในโฟลเดอร์รกรากใช้

  2. หากคุณไม่ได้มีโฟลเดอร์ .ssh ในD:/Users/your username/คุณจำเป็นต้องได้รับการจับคู่ของคีย์ SSH ssh-keygen -t rsa -C "you@homestead"ที่

  3. แก้ไข Homestead.yaml (ไร่ 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. คุณจำเป็นต้องใช้app เดสก์ทอปคอมไพล์ทุบตี

  2. เปิดแอปเดสก์ท็อป git bash vagrant up

  3. vagrant ssh


0

โซลูชันอื่นที่นี่ แต่เฉพาะสำหรับกล่องเสมือนจริงของ windows 10 เพื่อทดสอบ explorer ผู้ใช้ ssh: IEUser ssh pass: Passw0rd!


0

โฟลเดอร์การติดตั้ง vagrant มี ssh.exe ที่ทำงานเช่น ssh (1) บน linux (ใช้แฟล็ก / อาร์กิวเมนต์เดียวกัน)

หากต้องการดูอาร์กิวเมนต์ทั้งหมดที่ใช้คุณสามารถเรียกใช้vagrant ssh-configหรือvagrant ssh --debugหาเอาต์พุต verbose เพิ่มเติม

จาก 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"

สิ่งนี้มีประโยชน์คือสถานการณ์ที่vagrant statusบอกว่า vm ของคุณอยู่ในโหมดpoweroffหรือsuspendedเมื่อคุณบวกมันกำลังทำงานจริงเพื่อบังคับการเชื่อมต่อ ssh

หากคุณไม่ต้องการที่จะจำ / พิมพ์คำสั่งดังกล่าวข้างต้น Juste เขียนไว้ในvagrant.ps1ไฟล์เพื่อให้คุณสามารถดำเนินการได้จาก PowerShell ของคุณโดยใช้ .\vagrant_ssh.ps1


0

ทางเลือกที่ดีสำหรับ PuTTY คือตัวจำลอง terminal Mintty มันมีตัวเลือกที่กำหนดค่าได้มากกว่า PuTTY


-1

ฉันคิดว่าคำตอบที่ดีกว่าสำหรับคำถามนี้คือ:

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

Eric เขียนบทความที่ดีเกี่ยวกับวิธีการเปลี่ยนคอมพิวเตอร์ที่ใช้ windows ของคุณให้เป็นสภาพแวดล้อม Linux แม้จะมีแฮ็กที่จะทำให้ Vim ทำงานโดยกำเนิดเป็น cmd

หากคุณเรียกใช้คำแนะนำนี้ซึ่งโดยทั่วไปจะช่วยให้คุณติดตั้ง git cli และมีแฮ็กบางอย่างคุณสามารถแสดงพรอมต์คำสั่งและพิมพ์ ssh คนจรจัดในขณะที่อยู่ในโฟลเดอร์ของคนจรจัดของคุณและมันจะทำสิ่งที่ถูกต้อง จำเป็นต้องกำหนดค่าคีย์ ssh เป็นต้นทั้งหมดที่มาพร้อมกับ ssh และ git cli / bin

พลังของสิ่งนี้คือการที่คุณสามารถเรียกใช้ powerhell และยังคงได้รับความดี * nix สิ่งนี้จะทำให้สภาพแวดล้อมของคุณง่ายขึ้นและช่วยในการใช้งาน Vagrant และสิ่งอื่น ๆ

TL; DR ดาวน์โหลด Git cli และเพิ่ม git / bin ลงใน PATH แฮ็ค vim.bat ใน / bin เพื่อทำงานกับ windows ใช้ ssh ในหน่วย cmd


ทำไมถึงถูกโหวตตอนนี้? มันเป็นทางออกที่สมเหตุสมผลและถ้าคุณต้องการ dev ใน Windows นี่เป็นตัวเลือกที่ยอดเยี่ยมดีกว่าแฮ็คผงสำหรับอุดรูของคุณแฮ็คคำสั่งอื่น ๆ ของคุณ
มาร์คหลิว
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.