[ssh] 유창한 ssh 인증 실패

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를 사용할 수 있지만, 그것은 도움이되지 않습니다.



답변

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

행운을 빕니다.


답변

일반적인 정보 : 기본적으로 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 를 보도록 제안하십시오.


답변

위의 어느 것도 나를 위해 일하지 않았습니다. 어쨌든 상자는 잘못된 사용자 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를 다시 시도하십시오. 지금 작동합니다.


답변

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에만 영향을 미치며 우분투는 정상적으로 작동합니다.


답변

게스트 컴퓨터 / 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 디렉토리가 이미 있거나 이미 있다고 가정합니다.)


답변

내 경험상, 이것은 새로운 유랑 기계와 관련하여 놀랍게도 빈번한 문제였습니다. 구성 자체를 변경하는 대신이를 해결하는 가장 쉬운 방법은 클라이언트에서 필요한 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는 더 많은 정보를 제공합니다.


답변

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

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

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

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