programing

Windows에서 SSH에서 Vagrant 박스로?

bestprogram 2023. 4. 27. 22:54

Windows에서 SSH에서 Vagrant 박스로?

Vagrant를 사용하여 윈도우즈에서 VirtualBox VM을 시작하고 있습니다.다른 플랫폼에서는 다음과 같이

$ vagrant ssh

VM에 연결합니다.

창에서 이 Vagrant 상자에 연결하려면 어떻게 해야 합니까?

Vagrant 설명서에서 제안한 Pu 사용 방법TTy도 작동하지 않았습니다.

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

Windows 7에서 PuTTY를 사용하여 Vagrant 박스에 연결합니다.

잘 부탁드립니다!

  • 을변니다합을 합니다.%USERPROFILE%\.vagrant.d\insecure_private_keyPuTTYGen을 사용하여 .ppk로 이동
  • PuTTY 세션에서 .ppk 키 사용 - Connection > SSH > Auth > 개인 키 파일에서 구성됨
  • 호스트를 사용합니다.127.0.0.1
  • 22 대신 2222 포트 사용
  • Connection > SSH > Auth > Private Key에서 인증을 위한 기본 사용자 이름(부랑자)을 설정할 수 있습니다.

하나의 파일만 수정하여 일부 Vagrant 코드를 패치해야 합니다.ssh.rb.

모든 정보는 다음과 같습니다. https://gist.github.com/2843680

vagrant ssh이제 Linux에서와 마찬가지로 Windows에서도 작동합니다.


편집: 최신 버전에서는 이 작업이 필요하지 않게 되었습니다.대한 경로를 변수에 추가해야 합니다.

컴퓨터에서 ssh.exe를 검색하고 경로(즉, 경로)를 복사합니다.C:\Program Files (x86)\Git\bin), 시스템 기본 설정을 열고 환경 변수 설정을 찾은 다음 경로 변수를 클릭하고 경로를 추가하고 기존 경로를 분리합니다.;.

git 바이너리를 사용하는 다른 옵션:

  1. 설치 git: http://git-scm.com/download/win
  2. 시작 메뉴 > cmd (shift+를 입력하여 관리자로 이동)
  3. set PATH=%PATH%;C:\Program Files\Git\usr\bin
  4. vagrant ssh

Windows에서 몇 달 후에 사용한 보너스: Win 터미널 대신 콘솔을 사용하여 항상 PATH가 설정된 새 터미널 탭을 열 수 있습니다(옵션에서 구성).

퍼티 다운로드: http://www.chiark.greenend.org.uk/ ~sgtatham/putty/

퍼티 사용.exe:

퍼티 GUI:

HostName: 127.0.0.1
Port: 2222

연결할 때(터미널 화면):

User: vagrant
Passwd: vagrant

연결을 시도하기 전에 cmd를 사용하여 VM을 확인합니다.exe:

 vagrant status

다운된 경우 다음을 사용

vagrant up

승인된 답변은 매우 유용하지만 다음 키 대신 사용할 수 있습니다.

%USERPROFILE%\.vagrant.d\insecure_private_key

다른 키를 Putty 형식으로 변환해야 합니다.

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

에▁where디{vagrant_machine_root}는 의폴니다가 입니다.VagrantfilePutty를 사용하여 연결하려는 기계의.

@@ibizaman ▁@▁as이듯했급ib언▁use▁@를 사용합니다.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

이제 다음 플러그인을 사용하여 퍼티를 사용하여 연결할 수도 있습니다.

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

그냥 실행

vagrant 플러그인 설치 vagrant-multi-putty

그리고 퍼티를 확인하세요.exe와 puttygen.exe는 당신의 경로에 있습니다.

그러면 당신은 사용할 수 있을 것입니다.

부랑자의 퍼티

위에서 언급한 실행 파일은 다음에서 사용할 수 있습니다.

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

어느 하나

  1. 의 신의에서.cmd합니다.

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

OR

  1. 시스템의 환경 변수에 경로를 영구적으로 설정합니다.

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

기본적으로 Cygwin을 제거한 Windows용 OpenSSH 패키지가 있습니다.msi-Installer가 있으며 (경로를 설정한 후) "vsagrant ssh"와 함께 작동합니다.

http://sourceforge.net/projects/opensshwindows/ ?source= 디렉토리

이제 Vagrant 업그레이드를 원활하게 수행할 수 있는 훨씬 더 나은 솔루션을 갖게 되었습니다.패치가 적용된 파일을 기반으로 합니다.

부랑자 파일의 첫 줄은 다음과 같아야 합니다.

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

패치가 적용된 vagrantfile_ssh 파일(원래 이름은 ssh.rb)은 vagrantfile과 동일한 디렉토리에 있어야 합니다.이것은 우아하면서도 기능적입니다.

패치가 적용된 vagrantfile_ssh를 다운로드합니다.

  1. Git Bash 설치(OpenSSH와 함께 제공됨)grep,find,perl,sed계속;)

    설치한 Vagrant를 .appwiz.cpl(일명 프로그램 추가/제거) 및 Vagrant 설치.이렇게 하면 부랑자가 깃배쉬 경로에 추가됩니다.

  2. Git Bash 열기(시작 메뉴를 통해)

  3. cd ~/vagrant/mybox와 당의부상폴더로의자랑으로.vagrant ssh

위에서 제안한 대로 수행했지만 명령줄에서 PATH=%PATH%;"C:\Program files\git\usr\bin"으로만 환경 변수를 변경했습니다.

이것은 작동하지 않았습니다.하지만 Windows Settings를 통해 환경 변수를 수정하고 새 명령 프롬프트를 시작했을 때 처음으로 작동했습니다!

개인적으로, 저는 그냥 Cygwin을 사용합니다.따라서 Windows에서 일반적인 *nix 명령을 많이 사용할 수 있습니다.SSH는 그들 중 하나입니다.

Windows 7(다른 버전에서는 테스트되지 않음)

  1. "내 컴퓨터"를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.
  2. 고급 시스템 설정 클릭
  3. 환경 변수 클릭
  4. 시스템 변수 아래의 두 번째 상자에서 아래로 스크롤하여 변수 "경로"를 클릭하고 편집을 클릭합니다.
  5. 경로가 변수 값에 포함되어 있는지 확인합니다(있는 경우 세미콜론 및 C:\Program Files(x86)\Git\bin;(또는 ssh.exe에 대한 경로와 동일).
  6. OK > OK > OK and Restart WINDOWS
  7. 당신은 부랑자를 실행해야 하지만 그 후에 부랑자 ssh는 영구적으로 작동할 것입니다.

다른 버전에 도움이 될 수 있는 추가 정보...http://www.computerhope.com/issues/ch000549.htm

Vagrant Manager와 virtual box를 설치한 후에는 윈도우즈에 Cygwin을 설치해 보십시오. 그러나 Cygwin을 설치하는 동안에는 시스템이 Vagrant를 통해 시스템을 회전시킨 후 Cygwin에서 VM에 로그인할 수 있는 SSH 패키지, VIM 패키지를 선택해야 합니다.

부랑 설치 폴더에는 Linux에서 ssh(1)처럼 작동하는 ssh.exe가 포함되어 있습니다(같은 플래그/인수 사용).

사용된 모든 인수를 보려면 다음을 실행합니다.vagrant ssh-config또는vagrant ssh --debug더 자세한 출력을 위해.

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 statusVM이 다음 위치에 있다고 말합니다.poweroff또는suspended모드는 실제로 실행 중이며 SSH 연결을 강제로 적용합니다.

위의 명령어를 기억하거나 입력하지 않으려면 다음과 같이 입력합니다.vagrant.ps1다음을 사용하여 파워셸에서 실행할 수 있는 파일.\vagrant_ssh.ps1

윈도우용 에뮬레이터 터미널 cmder를 사용할 수 있습니다.

아래의 설치 단계를 따릅니다.

  1. cmder.net 에 액세스합니다.
  2. Download Full;을 클릭합니다.
  3. 압축 풀기
  4. (선택사항) 자신의 실행 파일을 PATH에 주입할 bin 폴더에 배치합니다.
  5. Cmder 실행(Cmder.exe)

여기에 이미지 설명 입력

Windows의 터미널 cmder

이제 VM vagrant 설정에 필요한 명령을 실행합니다. 연결에 필요한 명령은 vagrant ssh만 실행합니다. Watch cmder는 ssh 클라이언트를 내장합니다.

이것이 도움이 되길 바랍니다.

참고: login as: 프롬프트가 나타나면 사용자 이름으로 'vagrant'를 입력합니다(따옴표 없이).스노클펫 2012년 6월 28일 14시 14분

또는 카테고리->연결->Rlogin으로 이동하여 '자동 로그인 사용자 이름' 필드를 'Vagrant'로 설정할 수 있습니다.

세션을 저장합니다.

사용합니다vagrant ssh와의 지휘권.git ssh윈도우즈 7, 8.1 및 윈도우즈 10에서 사용할 수 있습니다.

설치하려면 msysgit 프로젝트 페이지에서 msysgit만 다운로드합니다.

그리고 달리기ssh.exe다음만 포함합니다.bin folterWindows 환경 변수로 이동하거나 Git Download 페이지에서 Git을 설치하고 복사합니다.msysgit bin folter로.C:\Program Files\Git\bin.

다음 행을 에 추가합니다.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"

이것은 joefitzerald/packer-windows opensh 설정 스크립트의 단순화된 버전입니다.

이제 할 수 있습니다.vagrant sshWindows 상자로 이동합니다.

vagrant-libvirt를 사용하는 경우 RDP와 같은 일부 포트를 호스트에서 게스트로 전달할 수 있습니다.vagrant-libvirt는 포트 포워딩에 ssh를 사용하므로 위의 지침과 같이 Windows에서 ssh를 설정해야 다음과 같은 포트를 포워딩할 수 있습니다.

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

저도 전에 같은 문제를 만난 적이 있습니다.

  1. 홈스테드 폴더에서 다음을 사용합니다.bash init.sh.

  2. .ssh 파일에 .D:/Users/your username/키 SSH 키를 .ssh-keygen -t rsa -C "you@homestead".

  3. Homestead 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. 당신은 gitbash 데스크톱 앱을 사용해야 합니다.

  2. app.gitbash 파일을 . vagrant up

  3. vagrant ssh

탐색기를 테스트하기 위한 윈도우즈 10의 가상 상자에 대한 다른 솔루션입니다. ssh 사용자: IEUserssh 패스:패스 w0rd!

PuTTY의 좋은 대안은 Minty 터미널 에뮬레이터입니다.PuTTY보다 구성 가능한 옵션이 더 많습니다.

이 질문에 대한 더 나은 대답은 다음과 같습니다.

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

에릭은 당신의 윈도우 컴퓨터를 리눅스 환경으로 바꾸는 방법에 대해 좋은 기사를 썼습니다.Vim이 cmd에서 기본적으로 작업할 수 있도록 해킹을 하더라도 말입니다.

기본적으로 gitcli를 설치할 수 있는 이 가이드를 실행하면 일부 해킹을 통해 명령 프롬프트를 표시하고 부랑자 상자의 폴더에 있는 동안 부랑자 ssh를 입력할 수 있습니다. 그러면 SSH 키 등을 구성할 필요 없이 올바른 작업을 수행할 수 있습니다.ssh와 git cli /bin과 함께 제공되는 모든 것.

이것의 힘은 실제로 파워셸을 실행하면서도 *nix good를 모두 얻을 수 있다는 것입니다.이를 통해 환경을 간소화하고 Vagrant 및 기타 작업을 실행할 수 있습니다.

TL;DR Gitcli 다운로드 및 Git/bin을 PATH에 추가합니다./bin에서 vim.bat을 해킹하여 창 작업을 수행합니다.cmd에서 기본적으로 ssh를 사용합니다.

언급URL : https://stackoverflow.com/questions/9885108/ssh-to-vagrant-box-in-windows