유창한 ssh 인증 실패


147

ssh 인증의 문제점 :

==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: bridged
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...

Ctrl+C인증 루프에서 벗어날 수 있으며 수동으로 ssh를 성공적으로 입력 할 수 있습니다.

게스트 박스에서 다음 단계를 수행했습니다.

  • 에 사용 Remote Login하도록 설정 되었습니다 All Users.

  • 권한이 있는 ~/.ssh디렉토리를 작성했습니다 0700.

  • 권한이 있는 ~/.ssh/authorized_keys파일을 작성했습니다 0600.

  • 이 공개 키 를 붙여 넣기~/.ssh/authorized_keys

또한 Vagrantfile 에서이 줄을 사용하여 공용 (브리지) 네트워크 대신 개인 (호스트 전용) 네트워크를 사용해 보았습니다.

config.vm.network "private_network", ip: "172.16.177.7"

동일한 출력 (제외 Adapter 2: hostonly)을 얻었지만 수동으로 ssh를 입력 할 수 없습니다.

나는 또한 시도했다 config.vm.network "private_network", ip: "10.0.0.100".

나는 또한 config.ssh.passwordVagrantfile에서 설정 을 시도 했습니다. 이것은 출력 SSH auth method: password하지만 여전히 인증되지는 않습니다.

또한 상자를 다시 만들고 위의 모든 사항을 다시 확인했습니다.

다른 사람들 이이 구성에 성공한 것처럼 보이 므로 내가 잘못하고있는 것이 있어야합니다.

나는 이 스레드를 발견 하고 GUI를 사용할 수 있지만, 그것은 도움이되지 않습니다.

답변:


1

첫 번째 네트워크 인터페이스가 NAT인지 확인하십시오. 다른 두 번째 네트워크 인터페이스는 상자를 만들 때 원하는 모든 것이 될 수 있습니다. Google 스레드에서 설명한 것처럼 Vagrant 사용자를 잊지 마십시오.

행운을 빕니다.


171

일반적인 정보 : 기본적으로 ssh-connect를 사용하면 간단하게 사용할 수 있습니다

사용자 : vagrant비밀번호 :vagrant

https://www.vagrantup.com/docs/boxes/base.html#quot-vagrant-quot-user

먼저 시도해보십시오 :insecure_private_key 머신 설정에 어떤 방랑자 가 있는지 확인하십시오 .

$ 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:/Users/konst/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

http://docs.vagrantup.com/v2/cli/ssh_config.html

둘째,insecure_private_key 개인 시스템 개인 키 의 내용으로 파일의 내용을 변경하십시오.

또는 사용 : Vagrantfile에 추가하십시오.

Vagrant.configure("2") do |config|
  config.ssh.private_key_path = "~/.ssh/id_rsa"
  config.ssh.forward_agent = true
end
  1. config.ssh.private_key_path 귀하의 로컬 개인 키입니다
  2. 개인 키는 로컬 ssh-agent에서 사용할 수 있어야합니다. 로 확인할 수 있습니다 ssh-add -L. 목록에 없으면ssh-add ~/.ssh/id_rsa
  3. ~/.ssh/authorized_keysVagrant VM에 공개 키를 추가하는 것을 잊지 마십시오 . 복사하여 붙여 넣거나 ssh-copy-id 와 같은 도구를 사용하여 수행 할 수 있습니다 (사용자 : root비밀번호 : vagrant포트 : 2222).ssh-copy-id '-p 2222 root@127.0.0.1'

여전히 작동하지 않으면 다음을 시도하십시오.

  1. insecure_private_key에서 파일 제거c:\Users\USERNAME\.vagrant.d\insecure_private_key

  2. 실행 vagrant up(방랑자가 새 insecure_private_key파일을 생성 함 )

다른 경우에는 forward_agent Vagrantfile 다음 같이 설정하면 도움이 됩니다 .

Vagrant::Config.run do |config|
   config.ssh.forward_agent = true
end

유능한:

git 설정 은 git-scm.com 과 함께 할 수 있습니다

이 프로그램을 설정하고 개인 시스템 개인 키를 생성 하면 프로필 경로에 있습니다.c:\users\USERNAME\.ssh\id_rsa.pub

추신 : 마지막으로 -Windows 10 에서 Ubuntu 를 보도록 제안하십시오.


4
제 경우에는 config.ssh.private_key_path = "~/.ssh/id_rsa"프로비저닝 작업을하기 위해이 라인을 제거해야 했기 때문에 문제 가되었습니다
holms

이 모든 것이 효과가 있었지만 알려진 호스트에서 내 항목을 제거해야했습니다. 위치를 이동하고 로그인 할 때 문제가 발생했습니다.
Pumphouse

@shilovk +1 감사합니다. 감사합니다. 대단히 감사합니다. "둘째, 할"트릭을했다. 다시 한번 감사드립니다.
whitesiroi

이것은 올바른 방향으로 나를 가리 켰습니다. 제 경우에는 .vagrant / machines / default / virtualbox / private_key 파일을 삭제하는 것뿐이었습니다. 경우에 따라 파일
andrux

가장 중요한 첫 번째 단계는 BIOS 설정을 확인하고 가상화가 활성화되어 있는지 확인하는 것입니다.
Bahman. A 18. 35

83

위의 어느 것도 나를 위해 일하지 않았습니다. 어쨌든 상자는 잘못된 사용자 authorised_keys 파일 에 잘못된 공개 키를 추가했습니다 .

당신은 여전히 ​​방랑 암호 (비밀번호는 방랑)로 상자에 ssh 할 수 있다면, 즉

ssh vagrant@localhost -p 2222

그런 다음 https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub 의 공개 키 컨텐츠를 다음 명령을 사용하여 authorised_keys 파일 로 복사하십시오.

echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" > .ssh/authorized_keys

완료되면 VM을 종료하고 vagrant ssh를 다시 시도하십시오. 지금 작동합니다.


4
vagrant reloadauthorized_keys 파일을 업데이트 한 후 실행 하십시오. Vagrant는 안전하지 않은 키를 자동으로 감지하여 다시 생성합니다. 나중에 작동해야합니다.
ProfileTwist 2016 년

47

vagrant 1.8.5 에서이 문제가 발생하면 github 에서이 스레드를 확인하십시오.

https://github.com/mitchellh/vagrant/issues/7610

기본적으로 권한 문제로 인해 발생하며 해결 방법은

vagrant ssh 
password: vagrant 
chmod 0600 ~/.ssh/authorized_keys
exit

그때

vagrant reload 

참고 :이 문제는 CentOS에만 영향을 미치며 우분투는 정상적으로 작동합니다.


하나의 방랑 파일에 대해 5 대의 컴퓨터가 있다고 가정하겠습니다. 다시 실행할 때마다 각 컴퓨터마다 수행해야합니다. centos를 사용하여 주어진 vagrant setup에 대해 이것을 영구적으로 수정합니까?
Pol

버그가있는 곳에서 1.8.5 버전을 사용하도록 1.8.6 버전으로 vagrant를 업그레이드해야했습니다.
Pol

42

게스트 컴퓨터 / VM에서 다음 명령을 실행하십시오.

wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R vagrant:vagrant ~/.ssh

그런 다음 방랑자를 중단하십시오. 개인 키가 제거되고 재생성됩니다.

(이 단계에서는 홈 폴더 아래에 ~ / .ssh / 및 ~ / .ssh / authorized_keys 디렉토리가 이미 있거나 이미 있다고 가정합니다.)


26

내 경험상, 이것은 새로운 유랑 기계와 관련하여 놀랍게도 빈번한 문제였습니다. 구성 자체를 변경하는 대신이를 해결하는 가장 쉬운 방법은 클라이언트에서 필요한 ssh 키를 수동으로 만든 다음 호스트의 개인 키를 사용하는 것입니다.

  1. vagrant machine에 로그인하십시오 : vagrant ssh, 기본 비밀번호를 사용하십시오 vagrant.
  2. ssh 키를 작성하십시오 ssh-keygen -t rsa -b 4096 -C "vagrant"( 예 : GitHub의 관련 안내서에서 권장 ).
  3. 공개 키 파일 (기본적으로 id_rsa.pub)의 이름을 바꾸고 이전 키를 대체하십시오 mv .ssh/id_rsa.pub .ssh/authorized_keys.
  4. 필요한 경우 ssh 서비스를 다시로드하십시오 sudo service ssh reload.
  5. 개인 키 파일 (기본적으로 id_rsa)을 호스트 시스템에 복사하십시오. 예를 들어 cat과 클립 보드 cat .ssh/id_rsa, 페인트 및 복사를 잘 조합하여 사용 하십시오 (더 나은 방법이 존재해야합니다.).
  6. 유랑 기계에서 로그 아웃 : logout.
  7. 구성을보고 방랑자가 사용하는 현재 개인 키를 찾으십시오 vagrant ssh-config(예 : ÌdentityFile "/[...]/private_key"참조).
  8. 예를 들어, 현재 개인 키를 호스트 컴퓨터에서 만든 것과 같은 개인 키로 nano /[...]/private_key바꾸고 클립 보드에서 붙여 넣습니다. ( 참고 , 그러나, 당신의 PRIVATE_KEY 프로젝트 특정 있지만 여러 방랑 기계에 의해 공유하지 않은 경우, 당신은 더 나은 다른 완벽하게 작동 기계의 균형을 위해 경로 자신을 구성하는 것이! 경로를 변경 한 줄 추가 한 간단하다 config.ssh.private_key_path = "path/to/private_key"Vagrantfile에 있습니다. ) 또한 PuPHPet 생성 머신을 사용하는 경우 개인 키를 파일에 저장할 수 puphpet/files/dot/ssh/id_rsa있으며 Vagrantfile의 ssh 구성에 자동으로 추가됩니다.
  9. 설정 테스트 : vagrant ssh이제 작동합니다.

그럴 경우, 스스로를 축하하고 logout, vagrant provision필요한 경우 달리고 , 의미있는 임무를 수행하십시오.

여전히 문제가 발생하면 디버깅을 쉽게하기 위해 ssh 명령에 verbose 플래그를 추가하는 것이 편리 할 수 ​​있습니다. 이중 대시 후에 그 (또는 그 문제에 대한 다른 옵션)를 전달할 수 있습니다. 예를 들어을 입력 vagrant ssh -- -v합니다. 필요한만큼 많은 v를 자유롭게 추가하십시오. 각 v는 더 많은 정보를 제공합니다.


이 답변이 도움이되었습니다. 내 경험을 공유하기 위해 : 어떻게 든 (Capistrano를 설치하는 동안 확인되지는 않았지만) 내 승인 된 VM 파일이 게스트 VM에서 삭제되었습니다. 이 단계를 사용하여 다시 작성하면 암호 프롬프트없이 ssh를 입력 할 수 있습니다. 감사.
Martin Joiner

호스트 컴퓨터에서 두 키 (공개 / 개인)을 제거한 후, 나는이 과정을 다시 할 수 및 해결했다
vrwired

Git을 사용하면 파일 내용을 더 빠르게 전송할 수 있습니다.
lloan

1
이 다른 시도, 실패 후 .. 나를 위해 일했다. 많은 감사합니다!
nikolas

이것은 나를 위해 일했습니다. 내가 다르게 한 것은 ssh vagrant@10.0.0.0 -p 22 (password: vagrant)VM에 로그인하는 데 사용하지 않았기 때문 vagrant ssh입니다. 10.0.0.0내에 설정 한 개인 IP 주소 vagrantfile입니다.
turrican_34

11

SSH에 대해 기본적으로 VM이 루트 사용자를 사용하도록하려는 경우에도 발생할 수 있습니다.

예를 들어, Vagrantfile에서 이와 같은 구성으로 인해이 실패가 발생할 수 있습니다.

config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'

솔루션 : 해당 라인을 주석 처리하고 다시 시도하십시오!


2
나를 위해 config.ssh.username = "vagrant"및 config.ssh.password = "
vagrant

8

문제 프로비저닝 된 상자에서 ssh 인증 오류가 발생했습니다. 원본은 잘 작동했습니다.

나를위한 문제는에 개인 키가 누락되었다는 것입니다 .vagrant/machines/default/virtualbox/private_key. 원래 상자와 Viola!의 동일한 상대 위치에서 개인 키를 복사했습니다!


나는 훌륭한 개발자로서 우리는 .vagrant파일을 git에 체크인하고 git checkout있다고 말했다.
Ian Vaughan 2

8

Win 8.2의 키로 혼란을 피할 수있는 방법을 찾았습니다. 여기서 언급 한 방법으로 성공하지 못했습니다. VirtualBox, Vagrant 및 상자의 동일한 조합이 아무런 문제없이 Win 7 Ultimate에서 실행된다는 것이 흥미로울 수 있습니다.

Vagrantfile에 다음 명령을 추가하여 비밀번호 인증으로 전환했습니다.

config.ssh.password = "vagrant"
config.ssh.insert_key = false

이미 수행했기 때문에 이것이 필요한 유일한 변경인지는 확실하지 않습니다.

  1. 새 RSA 키 페어를 생성하고 그에 따라 Authorized_keys 파일을 변경했습니다 (모두 가상 머신에서 위와 다른 곳의 제안 참조).

  2. Vagrantfile이있는 동일한 디렉토리에 개인 키를 복사하고 추가했습니다.

     config.ssh.private_key_path = "./id_rsa"
    

그러나 나는 이러한 변화가 무의미하다고 생각합니다. 나는 많은 시간을 보냈으므로 명백한 이유로 작업 구성을 변경하지 않았습니다. :)


5

멈춰서 시간이 초과되어 방랑자를 뛸 수 없습니까?

나는 최근에 "노트북 사고의 물"을 가지고 있었고 새로운 방법으로 전환해야했습니다 (MAC에서).

나는 방랑자를 사용하는 프로젝트 옆에 모든 프로젝트를 성공적으로 시작했습니다.

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 8000 (guest) => 8877 (host) (adapter 1)
    default: 8001 (guest) => 8878 (host) (adapter 1)
    default: 8080 (guest) => 7777 (host) (adapter 1)
    default: 5432 (guest) => 2345 (host) (adapter 1)
    default: 5000 (guest) => 8855 (host) (adapter 1)
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...

인증을 할 수 없었으며, 다시 시도하고 다시 포기했습니다.

** 이것은 내가 3 단계로 모양을 되찾은 방법입니다. **

1-vagrant가 사용한 IdentityFile 찾기 : $ vagrant ssh-config

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/ned/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

2-IdentityFile에서 공개 키를 확인하십시오. $ 사용자로 ssh-keygen -y -f /Users/<user-name>/.vagrant.d/insecure_private_key 교체하십시오 '<user-name>'. 다음과 같이 보일 것입니다 :

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==

3-비밀번호 "vagrant"를 사용하여 vagrant machine에 로그인하십시오 : $ ssh -p 2222 -o UserKnownHostsFile=/dev/null vagrant@127.0.0.1

The authenticity of host '[127.0.0.1]:2222 ([127.0.0.1]:2222)' can't be established.
RSA key fingerprint is dc:48:73:c3:18:e4:9d:34:a2:7d:4b:20:6a:e7:3d:3e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[127.0.0.1]:2222' (RSA) to the list of known hosts.
vagrant@127.0.0.1's password: vagrant
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-31-generic x86_64)
...

4-authorized_keys 파일에 공개 키를 추가하십시오. $echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==" > /home/vagrant/.ssh/authorized_keys ssh-rsa

5-(crtl + d)를 종료하고 방랑 용기를 멈추고 다시 가져옵니다. $ vagrant halt $vagrant up

바라건대 지금 당신은 당신의 팔을 공중에 가지고있을 것입니다 ...

나는 Ned Batchelders 기사 에서 약간의 수정으로 이것을 얻었습니다-Ned 당신은 챔피언입니다!


당신은 천재이거나 Ned Batchelders입니다. 어느 쪽이든, 그것은 내 문제를 해결했습니다!
Adsy2010

4

나를 위해, 이것은 방랑 홈 디렉터의 .ssh 폴더에 대한 권한을 변경하여 해결되었습니다 (예 : "~ vagrant / .ssh"). 내 응용 프로그램에 ssh 키를 설정할 때 권한을 엉망으로 생각합니다.

'authorized_keys'파일은 'vagrant'사용자에 대해서만 'rw'여야하므로 "chmod 600 certified_keys"; 디렉토리 자체와 상위 디렉토리도 마찬가지입니다.

그래서:

chmod 600 authorized_keys
chmod 700 .
chmod 700 ..

모든 권한을 복원 한 후에야 ssh가 다시 작동하기 시작했습니다.

ssh 보안과 관련이 있다고 생각합니다. 현재 사용자 이외의 방법으로 액세스 할 수 있으면 인증서 인식을 거부하므로 방랑자 로그인 시도가 거부됩니다.


때로는 sudo chmod 600 certified_keys를 실행하여 변경할 수 없지만 여전히 변경되지 않습니다. 나는 이것이 Windows에서도 공유되도록해야 할 일이 있다고 생각합니다.
Darius. V

예를 들어 디렉토리가 공유에있는 경우 이러한 상황이 발생합니다./vagrant/...
robert

1
내 답변 외에도이 답변에 투표하고 싶습니다. 내 다른 컴퓨터에서는 정확히이 문제가 발생했습니다. /home/vagrant/.ssh 디렉토리의 잘못된 소유자입니다. "root : root"였지만 "vagrant : vagrant"여야합니다.
Michael

4

VagrantFile에서 기본 SSH 설정을 사용하고 있고 충돌로 인해 VM 상자를 다시 연결 한 후 SSH 인증 오류가 표시되기 시작하면 vagrant 시스템에서 공개 키를 교체하십시오.

Vagrant는 보안상의 이유로 각 로그 아웃에서 안전하지 않은 개인 키 쌍과 관련된 공개 키를 대체합니다. 컴퓨터를 올바르게 종료하지 않으면 공개 / 개인 키 쌍이 동기화되지 않아 SSH 인증 오류가 발생할 수 있습니다.

이 문제를 해결하려면 현재 안전하지 않은 개인 키를로드 한 다음 공개 키 쌍을 VM의 authorized_keys 파일에 복사하십시오.


3

이것은 목록의 마지막 대답 일 수도 있지만 이것은 효과가 있었으며 어디에서 나이 대답을 찾지 못했습니다 .2 일간의 연구 끝에 내 자신을 발견 했으므로 지금까지 아무것도 효과가 없다면 시도해 보는 것이 좋습니다.

제 경우에는 문제가 VirtualBox에서 발생했습니다. 옵션이 비활성화 된 이유와 활성화해야하는 이유를 모르겠습니다.

여기에 이미지 설명을 입력하십시오

이미지에서 볼 수 있듯이 내 VirtualBox에 네트워크 문제가 있었으며이 문제를 해결하기 위해해야 ​​할 일은 내 컴퓨터를 선택하고 설정, 네트워크 탭을 누른 다음 케이블 연결 옵션을 확인하는 것입니다 선택되었습니다. 제 경우에는이 옵션이 선택되지 않았 으며이 단계에서 실패했습니다.

default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key

먼저 포트가 이미 사용 중이라고 생각한 후 Vagrant를 다시 설치하고 다른 것을 시도했지만 그중 아무것도 나를 위해 일하지 않았습니다.


3

이것은 나에게 여러 번 일어 났으며 그것을 해결하는 방법은 다음과 같습니다.

  1. Vagrantfile에 올바른 개인 키 경로가 있는지 확인하고 확인하십시오.

    config.ssh.private_key_path = "/home/razvan/.ssh/id_rsa"

  2. 리눅스 터미널에서 실행> vagrant ssh 명령

  3. 당신의 유랑 기계에서

    cd /home/vagrant/.ssh

authorized_keys 파일의 ssh 키가 ~ / .ssh / id_rsa.pub의 로컬 컴퓨터에있는 ssh 키와 동일한 지 확인하십시오. 당신의 한 교체하지 않으면 방랑 당신의 하나 authorized_keys에 로컬 컴퓨터를 ~ / 스푸핑 / id_rsa.pub에서 발견.

  1. 방랑자 재 장전 :

    방랑자 재 장전

이것이 다른 누군가를 돕기를 바랍니다. 건배!


~ / .ssh 폴더가 없으면 어떻게해야합니까 ??
Ashish Karpe

@AshishKarpe는 700 권한으로 authorized_keys파일을 만들고 600 권한으로 파일을 만듭니다 .
hogan

3

1. 호스트에서 개인 키를 찾으십시오.

vagrant ssh-config
#

산출:

Host default
  ...
  Port 2222
  ...
  IdentityFile /home/me/.vagrant.d/[...]/virtualbox/vagrant_private_key
  ...

2. 개인 키 경로와 포트 번호를 변수에 저장하십시오.

위의 출력에 다음 두 명령을 사용하십시오.

pk="/home/me/.vagrant.d/.../virtualbox/vagrant_private_key"
port=2222
#

3. 공개 키를 생성하여 게스트 컴퓨터에 업로드합니다.

복사 / 파스타, 변경 필요 없음 :

ssh-keygen -y -f $pk > authorized_keys
scp -P $port authorized_keys vagrant@localhost:~/.ssh/
vagrant ssh -c "chmod 600 ~/.ssh/authorized_keys"
rm authorized_keys
#

1
나는 설명 된 문제를 여러 번, 일반적으로 포장 상자를 포장 한 다음 복원 한 후에 여러 번 겪었습니다. 내게 도움이 된 것은 Vagrant에게 공개 키를 VM에 삽입하도록 지시하기 위해 다음 구성을 추가하는 것입니다. config.ssh.username = "vagrant"; config.ssh.password = "vagrant"; config.ssh.insert_key = true그러나 이번에는 위의 구성이 아무것도하지 않았습니다. 왜 그런지 모르겠지만 왜 키가 운없이 삽입되지 않았는지 디버그하려고했습니다. 그래서 나는 당신의 해결책과 짜잔에 빠졌습니다! 효과가있다!
stz184

2

맥 솔루션 :

  1. 방랑 개인 키에 로컬 ssh id_rsa 키 추가

    vi /Users//.vagrant/machines/default/virtualbox/private_key

    /Users//.ssh/id_rsa

  2. vagrant box certified_keys에 공개 키 /Users//.ssh/id_rsa.pub 복사

ssh vagrant@localhost -p 2222 (암호 : 방랑자) ls -la cd .ssh

  1. chmod 0600 ~/.ssh/authorized_keys

  2. vagrant reload

문제가 해결되었습니다.

덕분에


1

또한 넘어 설 수 없었습니다 :

기본값 : SSH 인증 방법 : 개인 키

VirtualBox GUI를 사용할 때 OS 프로세서가 일치하지 않는다고 알려줍니다.

BIOS 설정에서 방글라데시를 더 발전시키기 위해서는 반 직관적으로해야했습니다.

비활성화 : 가상화

가능 : VT-X

BIOS에서이 설정을 전환하십시오.


1

우선 자동 생성 된 insecure_private_key 파일을 제거한 다음 다음을 입력하여이 파일을 다시 생성해야합니다.

vagrant ssh-config

그때

vagrant halt
vagrant up

작동해야합니다


나는 이것을 시도했지만 여전히 오류가 발생합니다. 내가 우분투를 시도하고있는 Ubuntu Virtual Box VM을 사용하고 있기 때문입니다.
Ashish Karpe

#vagrant up 'virtualbox'제공자로 머신 'default'를 가져 오는 중 ... ==> 기본값 : 이전에 설정된 모든 전달 된 포트 지우기 ... ==> 기본값 : 이전에 설정된 네트워크 인터페이스를 지우는 중 ... ==> 기본값 : 구성을 기반으로 네트워크 인터페이스 준비 중 ... 기본값 : 어댑터 1 : nat ==> 기본값 : 전달 포트 ... 기본값 : 22 (게스트) => 2222 (호스트) (어댑터 1) ==> 기본값 : VM 부팅 .. ==> 기본값 : 머신 부팅 대기 중. 몇 분이 걸릴 수 있습니다 ... 기본값 : SSH 주소 : 127.0.0.1:2222 기본값 : SSH 사용자 이름 : 방랑 기본값 : SSH 인증 방법 : 개인 키
Ashish Karpe

1

다음과 같은 방법으로 문제를 해결했습니다. 1. Git Bash를 사용하여 새로운 SSH 키 만들기

$ ssh-keygen -t rsa -b 4096 -C "vagrant@localhost"
# Creates a new ssh key, using the provided email as a label
Generating public/private rsa key pair.
  1. "키를 저장할 파일을 입력하십시오"라는 프롬프트가 표시되면 Enter를 누르십시오. 기본 파일 위치를 사용합니다.

    키를 저장할 파일을 입력하십시오 (/Users/[you]/.ssh/id_rsa) : [Enter enter]

  2. 프롬프트에서 보안 암호를 입력하십시오. 암호가 필요없는 경우 비워두고 Enter 키를 누를 수 있습니다.

    키를 저장할 파일을 입력하십시오 (/Users/[you]/.ssh/id_rsa) : [Enter enter]

  3. 명령에 따라 Vagrant VM 유형에 연결하려면

    ssh vagrant @ localhost -p 2222

다음 메시지가 나타나면“yes”를 입력하고 Enter를 누르십시오.

The authenticity of host 'github.com (192.30.252.1)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
  1. SSH 연결 유형을 설정하려면 : $ vagrant ssh

  2. 호스트 공개 키를 Vagrant VM의 authorized_keys 파일에 복사하십시오. 이를 위해“Users / [you] /. ssh”폴더로 이동하여 호스트 시스템의 id_rsa.pub 파일에있는 내용을 Vagrant VM의“~ / .ssh / authorized_keys”파일에 복사하십시오.

  3. Vagrant VM의 SSH 폴더 및 authorized_keys 파일에 대한 권한 변경
  4. 다음과 같이 vagrant를 다시 시작하십시오 : $ vagrant reload

0

나는 기계를 시작했다.

vagrant ssh-config

나는 다음을 얻었습니다.

Host default HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /Users/my-user-name/Documents/PHP-Projects/my-php-project/puphpet/files/dot/ssh/id_rsa IdentityFile /Users/my-user-name/.vagrant.d/insecure_private_key IdentitiesOnly yes LogLevel FATAL

그런 다음 나는 달렸다

cat ~/.ssh/id_rsa > /Users/my-user-name/Documents/PHP-Projects/my-php-project/puphpet/files/dot/ssh/id_rsa

여기에서 부팅 된 머신

  • 엘 캐피 탄 10.11.1 베타 (15B38b)
  • 가상 박스 5.0.8 r103449
  • 방랑자 1.7.4

0

여기에있는 모든 답변 사이에 시도해야 할 좋은 것들이 많이 있습니다. 당신이 경우 완전성을 위해

ssh vagrant@localhost -p 2222

@Bizmate가 제안한대로 실패합니다.

AllowUsers vagrant

/etc/ssh/sshd_config게스트 / 방랑하는 기계.


0

2015 년 5 월부터 퍼핏 설치와 함께 Vagrant를 사용하고 있으며이 문제가 발생했습니다. 생성 된 구성이 안전하지 않은 키를 감지하면 ssh 키를 재생성하는 Vagrant 1.7.4 (또는 조금 더 일찍?) 동작을 처리하지 않은 것으로 보입니다.

"if File.file? (customKey)"절의 Puphpet 생성 Vagrantfile (로컬 설정)에 다음을 추가하여 문제를 해결했습니다.

config.ssh.insert_key = false

참조 커밋


0

이 문제를 해결하기 위해 수행 한 모든 올바른 단계는 vagrant up 명령이 실행될 때 발생했습니다.

다음은 내가 따르는 단계입니다

  1. 폴더를 만듭니다. 예 : F : \ projects
  2. git bash에서이 폴더를 열고이 명령을 실행하십시오. ssh-keygen -t rsa -b 4096 -C "your_email@example.com"(유효한 이메일 주소 입력)
  3. 그런 다음 프로젝트 폴더에서 두 개의 별도 파일로 키 페어를 생성하십시오. 예 : project (개인 키 파일), project.pub (공개 키 파일)
  4. 이 위치 C : \ Users \ acer.vagrant.d로 이동하여 insecure_private_key에서 파일을 찾으십시오.
  5. 파일 백업을 가져 와서 새로 작성된 개인 키의 컨텐츠를 복사하여 안전하지 않은 개인 키 파일에 붙여 넣으십시오. 그런 다음 insecure_private_key를 복사하여이 위치에도 붙여 넣습니다.
  6. 이제 프로젝트 위치에 방랑하십시오. 위의 문제 유형 vagrant ssh를 생성 한 후 사용자 이름, 비밀번호를 입력하십시오. (기본적으로 사용자 이름과 비밀번호는 방랑자로 설정됩니다)
  7. 이 위치 cd /home/vagrant/.ssh로 이동하여 mv authorized_keys certified_keys_bk를 입력하십시오.
  8. 그런 다음 ls -al을 입력하고 open authorized_keys 파일 vi 편집기의 경우 vi authorized_keys를 입력하십시오.
  9. notepad ++ (project.pub)에서 생성 된 공개 키를 열고 내용을 복사 한 다음 git bash에서 i를 눌러 vi 편집기에서 삽입 모드를 활성화하고 마우스 오른쪽 버튼을 클릭하여 붙여 넣습니다. 삽입 모드에서 빠져 나오려면 탈출을 누른 후
  10. : wq! 파일을 저장하고 ls -al을 입력하십시오.
  11. 그런 다음 권한은 drwx ------를 변경할 필요가없는 것처럼 설정됩니다. 2 명의 방랑자 4096 Feb 13 15:33. drwx ------. 4 개의 방랑자 4096 2 월 13 일 14:04 .. -rw -------. 1 개의 방랑자 743 2 월 13 일 14:26 certified_keys -rw -------. 1 루트 루트 409 2 월 13 일 13:57 certified_keys_bk -rw -------. 1 vagrant vagrant 409 1 월 2 일 23:09 authorized_keys_originial 그렇지 않으면 chmod 600 authorized_keys를 입력하고이 명령을 너무 입력하십시오. vagrant : vagrant certified_keys
  12. 마지막으로 방랑자를 멈추고 다시 방랑을합니다.

************************ 이것은 나를위한 일입니다. ******************** ***********


0

나와 같은 바보이거나 그들의 유랑 기계에 이상한 일이 있었던 사람들을 위해서. 이 오류는 유포 한 사용자의 홈 디렉토리 권한을 의도적으로 또는 실수로 변경 한 경우에도 발생할 수 있습니다.

비밀번호 ( 'vagrant')를 사용하여 대신 다른 게시물에 설명 된대로 로그인 한 후 다음 명령을 실행하여 권한을 수정할 수 있습니다.

sudo chown -R vagrant:vagrant /home/vagrant

그런 다음 비밀번호를 입력하지 않고 다시 로그인 할 수 있어야합니다.

TL; DR : 방랑자 홈 폴더에 대한 권한이 잘못되었습니다.


0

단순한:

homestead destroy
homestead up

편집 (첫 생각만큼 간단하지 않음) :

문제는 새로운 버전의 농가 사용 php7.0과 다른 것들이었습니다. 이 혼란을 피하려면 verisonin 을 설정하십시오 Homestead.yml.

version: "0"

0

여기에 주어진 것처럼 Windows 7 CMD에서 명령을 실행 하여이 문제를 해결했습니다.이 스레드의 마지막 게시물입니다.

https://github.com/mitchellh/vagrant/issues/6744

Some commands that will reinitialize various network states:
Reset WINSOCK entries to installation defaults : netsh winsock reset catalog
Reset TCP/IP stack to installation defaults : netsh int ip reset reset.log
Flush DNS resolver cache : ipconfig /flushdns
Renew DNS client registration and refresh DHCP leases : ipconfig /registerdns
Flush routing table : route /f

0

재 포장 된 기본 상자에서 지난 며칠 동안 제 머리를 때렸습니다. (Mac OS X, 엘 캐피 탄)

@ Radek의 절차에 따라 소스 상자에서 'vagrant ssh-config'를 수행하여 다음을 얻었습니다.

...
/Users/Shared/dev/<source-box-name>/.vagrant/machines/default/virtualbox/private_key
...

새 사본에서 그 명령은 나에게 주었다.

...
IdentityFile /Users/<username>/.vagrant.d/insecure_private_key
...

방금 새 줄 에이 줄을 추가했습니다.

...
config.ssh.private_key_path = "/Users/Shared/dev/<source-box-name>/.vagrant/machines/default/virtualbox/private_key"
...

완벽하지는 않지만 내 인생을 살아갈 수 있습니다.


0

Windows의 또 다른 간단한 솔루션은 Homestead / Vagrantfile 파일로 이동하여 다음 행을 추가하여 개인 키 대신 사용자 이름 / 암호로 연결하십시오.

config.ssh.username = "vagrant"  
config.ssh.password = "vagrant"  
config.ssh.insert_key = false 

결국 파일의 일부는 다음과 같습니다.

if File.exists? homesteadYamlPath then
    settings = YAML::load(File.read(homesteadYamlPath))
elsif File.exists? homesteadJsonPath then
    settings = JSON.parse(File.read(homesteadJsonPath))
end

config.ssh.username = "vagrant"  
config.ssh.password = "vagrant"  
config.ssh.insert_key = false 

Homestead.configure(config, settings)

if File.exists? afterScriptPath then
    config.vm.provision "shell", path: afterScriptPath, privileged: false
end

이 도움을 바랍니다 ..


0

내 VM 머신에서 시도했습니다

/ home / vagrant 권한을 변경하십시오 (chmod 700을 가지고 있음)

지금은 내 상자에 직접 ssh 수 있습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.