Lỗi xác thực ssh


147

Vấn đề với xác thực 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...

Tôi có thể Ctrl+Cra khỏi vòng xác thực và sau đó ssh thành công bằng tay.

Tôi đã thực hiện các bước sau trên hộp khách:

  • Kích hoạt Remote Logincho All Users.

  • Tạo ~/.sshthư mục với 0700quyền.

  • Tạo ~/.ssh/authorized_keystập tin với 0600quyền.

  • Dán khóa công khai này vào~/.ssh/authorized_keys

Tôi cũng đã thử sử dụng mạng riêng (hostonly) thay vì mạng công cộng (bắc cầu), sử dụng dòng này trong Vagrantfile:

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

Tôi nhận được cùng một đầu ra (ngoại trừ Adapter 2: hostonly) nhưng sau đó không thể ssh bằng tay.

Tôi cũng đã thử config.vm.network "private_network", ip: "10.0.0.100".

Tôi cũng đã thử thiết lập config.ssh.passwordtrong Vagrantfile. Điều này không đầu ra SSH auth method: passwordnhưng vẫn không xác thực.

Và tôi cũng đã thử xây dựng lại chiếc hộp và kiểm tra lại tất cả những thứ trên.

Có vẻ như những người khác đã thành công với cấu hình này , vì vậy phải có điều gì đó tôi đang làm sai.

Tôi đã tìm thấy chủ đề này và kích hoạt GUI, nhưng điều đó không có ích.

Câu trả lời:


1

Đảm bảo giao diện mạng đầu tiên của bạn là NAT. Giao diện mạng thứ hai khác có thể là bất cứ thứ gì bạn muốn khi bạn xây dựng hộp. Đừng quên người dùng Vagrant, như được thảo luận trong chuỗi Google.

Chúc may mắn.


171

Để biết thông tin chung: theo mặc định cho ssh-connect, bạn có thể chỉ cần sử dụng

người dùng: vagrantmật khẩu:vagrant

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

Trước tiên, hãy thử: để xem những gì mơ hồ insecure_private_keytrong cấu hình máy của bạn

$ vagrant ssh-config

Thí dụ:

$ 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

Thứ hai, làm: Thay đổi nội dung của tệp insecure_private_keybằng nội dung của khóa riêng của hệ thống cá nhân của bạn

Hoặc sử dụng: Thêm nó vào 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 là khóa riêng địa phương của bạn
  2. Khóa riêng của bạn phải có sẵn cho đại lý ssh địa phương. Bạn có thể kiểm tra với ssh-add -L. Nếu nó không được liệt kê, hãy thêm nó vớissh-add ~/.ssh/id_rsa
  3. Đừng quên thêm khóa công khai của bạn ~/.ssh/authorized_keysvào VM Vagrant. Bạn có thể làm điều đó bằng cách sao chép và dán hoặc sử dụng một công cụ như ssh-copy-id (user: rootpassword: vagrantport: 2222)ssh-copy-id '-p 2222 root@127.0.0.1'

Nếu vẫn không hoạt động, hãy thử điều này:

  1. Xóa insecure_private_keytệp khỏic:\Users\USERNAME\.vagrant.d\insecure_private_key

  2. Chạy vagrant up(vagrant sẽ được tạo một insecure_private_keytệp mới )

Trong các trường hợp khác, thật hữu ích khi chỉ đặt Forward_agent trong Vagrantfile :

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

Hữu ích:

Cấu hình git có thể với git-scm.com

Sau khi thiết lập chương trình này và tạo khóa riêng của hệ thống cá nhân sẽ nằm trong đường dẫn hồ sơ của bạn:c:\users\USERNAME\.ssh\id_rsa.pub

PS: Cuối cùng - đề nghị bạn xem Ubuntu trên Windows 10


4
trong trường hợp của tôi, đó là vấn đề vì config.ssh.private_key_path = "~/.ssh/id_rsa"phải loại bỏ dòng này để thực hiện công việc cung cấp
holms

Tất cả điều này đã làm việc nhưng tôi cũng phải loại bỏ mục nhập của tôi trong các máy chủ được biết đến. Tôi đã gặp sự cố khi di chuyển địa điểm và đăng nhập.
Pumphouse

@shilovk +1 Cảm ơn bạn, cảm ơn bạn, cảm ơn bạn rất nhiều. "Thứ hai, làm" đã lừa Một lần nữa, cảm ơn bạn rất nhiều người đàn ông.
whitesiroi

Điều này chỉ cho tôi đi đúng hướng, trong trường hợp của tôi, tất cả những gì tôi phải làm là xóa tệp .vagrant / Machines / default / virtualbox / private_key và sau khi chạy xong, nó thay thế tệp bằng đúng - tôi sẽ sao lưu tập tin chỉ trong trường hợp
andrux

Bước đầu tiên và quan trọng nhất là kiểm tra cài đặt BIOS của bạn, đảm bảo Ảo hóa được bật.
Bahman.

83

Không ai ở trên làm việc cho tôi. Bằng cách nào đó, hộp có khóa công khai sai được thêm vào trong tệp ủy quyền của người dùng mơ hồ.

Nếu bạn vẫn có thể ssh trên hộp với mật khẩu mơ hồ (mật khẩu là mơ hồ), tức là

ssh vagrant@localhost -p 2222

sau đó sao chép nội dung khóa công khai từ https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub vào tệp Authorised_keys bằng lệnh sau

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

Khi hoàn tất, thoát VM và thử lại ssh vagrant. Nó nên hoạt động ngay bây giờ.


4
chạy vagrant reloadsau khi cập nhật tệp ủy quyền. Vagrant sẽ tự động phát hiện khóa không an toàn và tạo lại nó cho bạn. Nên làm việc sau.
ProfileTwist

47

Nếu bạn gặp vấn đề này trên 1.8.5, hãy xem chủ đề này trên github:

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

Về cơ bản, nguyên nhân là do vấn đề cấp phép, cách giải quyết chỉ là

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

sau đó

vagrant reload 

FYI: vấn đề này chỉ ảnh hưởng đến CentOS, Ubuntu hoạt động tốt.


Giả sử tôi có 5 máy cho một tập tin mơ hồ. Mỗi khi tôi chạy lại, tôi cần phải làm điều đó cho mỗi máy. Tôi có sửa lỗi này vĩnh viễn cho thiết lập mơ hồ bằng centos không?
Pol

Chỉ cần nâng cấp vagrant lên phiên bản 1.8.6 để có 1.8.5 trong đó lỗi đã được trình bày
Pol

42

Chạy các lệnh sau trong máy khách / 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

Sau đó làm mơ hồ dừng lại. Điều này sẽ loại bỏ và tạo lại các khóa riêng của bạn.

(Các bước này giả sử bạn đã tạo hoặc đã có thư mục ~ / .ssh / và ~ / .ssh / ủy quyền trong thư mục nhà của bạn.)


26

Theo kinh nghiệm của tôi, đây là một vấn đề thường xuyên đáng ngạc nhiên với các máy móc mới. Cho đến nay, cách dễ nhất để giải quyết nó, thay vì tự thay đổi cấu hình, đã tạo các khóa ssh cần thiết theo cách thủ công trên máy khách, sau đó sử dụng khóa riêng trên máy chủ.

  1. Đăng nhập vào máy vagrant : vagrant ssh, sử dụng mật khẩu mặc định vagrant.
  2. Tạo các khóa ssh: ví dụ: ssh-keygen -t rsa -b 4096 -C "vagrant"( như được hướng dẫn bởi hướng dẫn có liên quan của GitHub ).
  3. Đổi tên tệp khóa công khai (theo mặc định id_rsa.pub), ghi đè tệp cũ : mv .ssh/id_rsa.pub .ssh/authorized_keys.
  4. Tải lại dịch vụ ssh trong trường hợp cần thiết : sudo service ssh reload.
  5. Sao chép tệp khóa riêng (theo mặc định id_rsa) vào máy chủ: ví dụ: sử dụng kết hợp tốt giữa mèo và bảng tạm cat .ssh/id_rsa, vẽ và sao chép (phải có cách tốt hơn, hãy phát minh ra một!).
  6. Đăng xuất từ ​​máy vagrant : logout.
  7. Tìm khóa riêng hiện tại được sử dụng bởi vagrant bằng cách xem cấu hình của nó: vagrant ssh-config(tìm ví dụ ÌdentityFile "/[...[/private_key".
  8. Thay thế khóa riêng hiện tại bằng khóa bạn đã tạo ở máy chủ: ví dụ nano /[...]/private_keyvà dán từ bảng ghi tạm, nếu tất cả các cách khác đều thất bại. ( Tuy nhiên, lưu ý rằng nếu private_key của bạn không phải là dự án cụ thể nhưng được chia sẻ bởi nhiều máy ảo, bạn nên tự cấu hình đường dẫn để không phá vỡ các máy hoạt động hoàn hảo khác! Thay đổi đường dẫn đơn giản như thêm một dòng config.ssh.private_key_path = "path/to/private_key"vào Vagrantfile. ) Hơn nữa, nếu bạn đang sử dụng máy được tạo PuPHPet , bạn có thể lưu trữ khóa riêng của mình vào tệp puphpet/files/dot/ssh/id_rsavà nó sẽ tự động được thêm vào cấu hình ssh của Vagrantfile.
  9. Kiểm tra thiết lập: vagrant sshbây giờ sẽ hoạt động.

Nếu đó là trường hợp, hãy chúc mừng bản thân logout, chạy vagrant provisionnếu cần và tiếp tục với nhiệm vụ có ý nghĩa trong tay.

Nếu bạn vẫn gặp phải vấn đề, có thể hữu ích khi thêm cờ verbose vào lệnh ssh để dễ gỡ lỗi. Bạn có thể vượt qua điều đó (hoặc bất kỳ tùy chọn nào khác, cho vấn đề đó) sau dấu gạch ngang kép. Ví dụ, gõ vagrant ssh -- -v. Vui lòng thêm bao nhiêu v bạn cần, mỗi cái sẽ cung cấp cho bạn thêm thông tin.


Câu trả lời này đã giúp tôi. Chỉ để chia sẻ kinh nghiệm của tôi: Bằng cách nào đó (có thể trong quá trình cài đặt Capistrano nhưng không được xác nhận), tệp ủy quyền_key của tôi đã bị xóa trên máy khách VM của tôi. Việc tạo lại nó bằng các bước này đã hoạt động và bây giờ tôi có thể ssh in mà không cần nhắc mật khẩu. Cảm ơn.
Martin Joiner

Sau khi xóa cả hai khóa (công khai / riêng tư) khỏi máy chủ, tôi đã có thể làm lại và giải quyết với quy trình này
vrwired

Sử dụng Git làm cho việc chuyển nội dung tệp đó nhanh hơn.
lloan

1
cái này làm việc cho tôi sau bất cứ điều gì khác tôi đã thử, thất bại .. cảm ơn rất nhiều!
nikolas

Điều này làm việc cho tôi. Điều duy nhất tôi làm khác là sử dụng ssh vagrant@10.0.0.0 -p 22 (password: vagrant)để đăng nhập vào VM vì vagrant sshnó không hoạt động với tôi. 10.0.0.0là địa chỉ IP riêng tôi đã đặt trong vagrantfile.
turrican_34 ngày

11

Điều này cũng có thể xảy ra nếu bạn đang cố gắng buộc VM của mình sử dụng người dùng root theo mặc định cho SSH ....

Ví dụ: một cấu hình như vậy trong Vagrantfile của bạn có thể gây ra lỗi này:

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

Giải pháp: Nhận xét những dòng đó và thử lại!


2
đối với tôi chỉ thiết lập config.ssh.username = "vagrant" và config.ssh.password = "vagrant" đã thực hiện thủ thuật
psychok7

8

Vấn đề tôi đã nhận được các lỗi xác thực ssh, trên một hộp tôi đã cung cấp. Bản gốc đã hoạt động tốt.

Vấn đề đối với tôi là tôi đã thiếu một khóa riêng .vagrant/machines/default/virtualbox/private_key. Tôi đã sao chép khóa riêng từ cùng một vị trí tương đối từ hộp ban đầu và Viola!


Tôi sẽ nói thêm rằng, như bất kỳ nhà phát triển giỏi nào, chúng tôi đang kiểm tra các .vagranttệp vào git ... và như vậy, một git checkouttệp nhanh nói sẽ tiết kiệm trong ngày!
Ian Vaughan

8

Tôi đã tìm ra cách khắc phục tình trạng lộn xộn với các phím trên Win 8.2 mà tôi không thành công với bất kỳ phương pháp nào được đề cập ở đây. Điều thú vị là chính xác sự kết hợp tương tự của VirtualBox, Vagrant và hộp chạy trên Win 7 Ultimate mà không gặp vấn đề gì.

Tôi đã chuyển sang xác thực mật khẩu bằng cách thêm các lệnh sau trong Vagrantfile:

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

Lưu ý rằng tôi không chắc chắn rằng đây là thay đổi duy nhất cần thiết vì tôi đã thực hiện:

  1. Tôi đã tạo một cặp khóa RSA mới và thay đổi tệp ủy quyền cho phù hợp (tất cả trong máy ảo, xem các đề xuất ở trên và các nơi khác)

  2. Tôi đã sao chép khóa riêng vào cùng thư mục nơi Vagrantfile cư trú và thêm vào

     config.ssh.private_key_path = "./id_rsa"
    

Nhưng tôi tin rằng những thay đổi này không liên quan. Tôi đã dành rất nhiều thời gian để thử, vì vậy tôi đã không thay đổi cấu hình làm việc bởi những lý do rõ ràng :)


5

Không thể chạy mơ hồ lên vì nó bị kẹt và hết thời gian?

Gần đây tôi đã có một "sự cố nước trong máy tính xách tay" và phải chuyển sang một cái mới (trên MAC bằng cách này).

Tôi đã thành công trong tất cả các dự án của mình và chạy bên cạnh dự án đang sử dụng vagrant.

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

Nó không thể xác thực, thử lại nhiều lần và cuối cùng bỏ cuộc.

** Đây là cách tôi lấy lại hình dạng trong 3 bước: **

1 - Tìm IdentityFile được sử dụng bởi vagrant: $ 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 - Kiểm tra khóa chung trong IdentityFile: $ ssh-keygen -y -f /Users/<user-name>/.vagrant.d/insecure_private_key Thay thế '<user-name>'bằng người dùng của bạn. Nó sẽ trông giống như thế này:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==

3 - Đăng nhập vào máy vagrant bằng mật khẩu "vagrant": $ 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 - Thêm khóa công khai vào tệp ủy quyền. $echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==" > /home/vagrant/.ssh/authorized_keys ssh-rsa

5 - Thoát (crtl + d) và dừng thùng chứa mơ hồ và mang nó trở lại. $ vagrant halt $vagrant up

Hy vọng rằng bạn sẽ có cánh tay của bạn trong không khí bây giờ ...

Tôi đã nhận được điều này, chỉ với một sửa đổi nhỏ, từ bài viết của Ned Batchelders - Ned bạn là một nhà vô địch !!


Bạn là một thiên tài, hoặc Ned Batchelders. Dù bằng cách nào, nó đã khắc phục vấn đề của tôi!
Adsy2010

4

đối với tôi, điều này đã được giải quyết bằng cách thay đổi các quyền trên thư mục .ssh trong directort home vagrant (tức là "~ vagrant / .ssh"). Tôi nghĩ rằng tôi đã làm hỏng các quyền khi tôi đang thiết lập các phím ssh cho ứng dụng của mình.

Có vẻ như tệp 'ủy quyền' phải là 'rw' chỉ dành cho người dùng 'vagrant' nên "chmod 600 ủy quyền"; điều tương tự cũng xảy ra với chính thư mục và cha mẹ của nó:

vì thế:

chmod 600 authorized_keys
chmod 700 .
chmod 700 ..

Chỉ sau khi tôi khôi phục lại tất cả các quyền này, ssh mơ hồ mới bắt đầu hoạt động trở lại.

Tôi nghĩ đó là một cái gì đó để làm với bảo mật ssh. Nó từ chối công nhận chứng chỉ nếu chúng có thể truy cập được ngoài người dùng hiện tại, do đó những nỗ lực đăng nhập của những người mơ hồ bị từ chối.


Đôi khi tôi không thể thay đổi, chỉ chạy sudo chmod 600 ủy quyền nhưng nó vẫn không thay đổi. Tôi nghĩ rằng điều này có một cái gì đó để làm nó cũng được chia sẻ trên windows.
Darius.V

Đôi khi, điều này xảy ra nếu thư mục được chia sẻ, chẳng hạn/vagrant/...
robert

1
Ngoài câu trả lời của tôi, tôi muốn bỏ phiếu cho câu trả lời này. Trên một máy khác của tôi, đó chính xác là vấn đề này - chủ sở hữu sai của thư mục /home/vagrant/.ssh. Đó là "root: root" nhưng phải là "vagrant: vagrant"
Michael

4

Nếu bạn đang sử dụng thiết lập SSH mặc định trong VagrantFile và bắt đầu thấy lỗi xác thực SSH sau khi liên kết lại hộp VM của bạn do sự cố, hãy thử thay thế khóa công khai trong máy ảo của bạn.

Vagrant thay thế khóa công khai liên quan đến cặp khóa riêng không an toàn tại mỗi lần đăng xuất vì lý do bảo mật. Nếu bạn không tắt máy đúng cách, cặp khóa chung / riêng có thể không đồng bộ hóa, gây ra lỗi xác thực SSH.

Để giải quyết vấn đề này, chỉ cần tải lên khóa riêng không an toàn hiện tại và sau đó sao chép cặp khóa chung vào tệp ủy quyền của VM của bạn.


3

Đây có thể là câu trả lời cuối cùng trong danh sách nhưng điều này hiệu quả với tôi và tôi không tìm thấy câu trả lời này ở bất cứ đâu, tôi đã tìm thấy nó sau 2 ngày nghiên cứu vì vậy bạn nên thử nó nếu không có gì khác hiệu quả cho đến bây giờ.

Trong trường hợp của tôi, vấn đề đến từ VirtualBox của tôi. Tôi không biết vì lý do gì mà một tùy chọn bị vô hiệu hóa và nó nên được kích hoạt.

nhập mô tả hình ảnh ở đây

Như bạn có thể thấy trong hình, có một số sự cố mạng với VirtualBox của tôi và những gì tôi phải làm để khắc phục sự cố này là chọn máy của tôi, nhấn vào cài đặt, tab mạng và sau đó đảm bảo rằng tùy chọn Cáp được kết nối đã được lựa chọn. Trong trường hợp của tôi, tùy chọn này không được chọn và tôi đã thất bại ở bước này:

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

Đầu tiên tôi nghĩ rằng cổng đã được sử dụng, sau đó tôi đã cài đặt lại Vagrant và tôi cũng đã thử những thứ khác nhưng không ai trong số chúng hoạt động cho tôi.


3

Điều này đã xảy ra với tôi nhiều lần và cách tôi giải quyết nó là:

  1. Kiểm tra và đảm bảo Vagrantfile của bạn có đường dẫn khóa riêng đúng:

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

  2. Thực thi lệnh ssh vagrant trong thiết bị đầu cuối linux

  3. Trên máy của bạn đi đến

    cd /home/vagrant/.ssh

và kiểm tra xem khóa ssh trong tệp ủy quyền có giống với khóa bạn có trên máy cục bộ của bạn trong ~ / .ssh / id_rsa.pub không. Nếu không thay thế một từ từ ủy quyền mơ hồ của bạn bằng một cái trên máy cục bộ của bạn được tìm thấy trong ~ / .ssh / id_rsa.pub.

  1. Tải lại Vagrant:

    tải lại

Hy vọng điều này sẽ giúp người khác. Chúc mừng!


Tôi không có thư mục ~ / .ssh thì phải làm sao ??
Ashish Karpe

@AshishKarpe tạo nó với 700 quyền và tạo một authorized_keystệp có 600 quyền bên trong.
hogan

3

1. Xác định vị trí khóa riêng trong máy chủ:

vagrant ssh-config
#

Đầu ra:

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

2. Lưu trữ đường dẫn khóa riêng và số cổng trong các biến:

Sử dụng hai lệnh này với đầu ra từ phía trên:

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

3. Tạo khóa công khai và tải nó lên máy khách:

Sao chép / mì ống, không cần thay đổi:

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
Tôi đã có vấn đề được mô tả rất nhiều lần, thường là sau khi đóng gói và sau đó khôi phục hộp Vagrant. Điều làm việc với tôi là thêm cấu hình sau để hướng dẫn Vagrant chèn khóa công khai vào VM: config.ssh.username = "vagrant"; config.ssh.password = "vagrant"; config.ssh.insert_key = trueNhưng lần này, cấu hình trên không làm gì cả. Tôi thực sự không biết tại sao, đã cố gắng gỡ lỗi tại sao khóa không được đưa vào mà không gặp may. Vì vậy, tôi đã dự phòng giải pháp của bạn và thì đấy! Nó hoạt động!
stz184

2

Giải pháp Mac:

  1. Đã thêm khóa ssh id_rsa cục bộ vào khóa riêng

    vi / Người dùng//.vagrant/machines/default/virtualbox/private_key

    / Người dùng//.ssh / id_rsa

  2. sao chép khóa công khai / Người dùng//.ssh / id_rsa.pub trên hộp mơ hồ ủy quyền

ssh vagrant@localhost -p 2222 (mật khẩu: mơ hồ) ls -la cd .ssh

  1. chmod 0600 ~/.ssh/authorized_keys

  2. vagrant reload

Giải quyết vấn đề.

Nhờ vào


1

cũng không thể vượt qua:

mặc định: phương thức SSH auth: khóa riêng

Khi tôi sử dụng GUI VirtualBox, nó nói với tôi rằng có một bộ xử lý hệ điều hành không khớp.

Để có được sự tiến bộ hơn nữa, trong cài đặt BIOS, tôi đã phải phản trực giác:

Vô hiệu hóa: Ảo hóa

Kích hoạt: VT-X

Hãy thử bật các cài đặt này trong BIOS của bạn.


1

Trước hết, bạn nên xóa tệp insecure_private_key tự động, sau đó tạo lại tệp này bằng cách nhập

vagrant ssh-config

sau đó

vagrant halt
vagrant up

Nó nên hoạt động


Tôi đã thử điều này nhưng vẫn gặp lỗi là do tôi đang sử dụng Ubuntu Virtual Box VM bên trong mà tôi đang thử?
Ashish Karpe

#vagrant up Đưa máy 'mặc định' lên với nhà cung cấp 'hộp ảo' ... ==> mặc định: Xóa mọi cổng được chuyển tiếp trước đó ... ==> mặc định: Xóa mọi giao diện mạng được đặt trước đó ... ==> mặc định: Chuẩn bị giao diện mạng dựa trên cấu hình ... mặc định: Bộ điều hợp 1: nat ==> mặc định: Chuyển tiếp cổng ... mặc định: 22 (khách) => 2222 (máy chủ) (bộ điều hợp 1) ==> mặc định: Khởi động VM .. . ==> mặc định: Đang chờ máy khởi động. Quá trình này có thể mất vài phút ... mặc định: Địa chỉ SSH: 127.0.0.1:2222 mặc định: Tên người dùng SSH: mặc định không rõ ràng: Phương thức SSH auth: khóa riêng
Ashish Karpe

1

Tôi đã giải quyết vấn đề theo cách sau. 1. Tạo khóa SSH mới bằng Git Bash

$ 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. Khi bạn được nhắc "Nhập tệp để lưu khóa", hãy nhấn Enter. Điều này chấp nhận vị trí tập tin mặc định.

    Nhập một tệp để lưu khóa (/Users/[you[/.ssh/id_rsa): [Nhấn enter]

  2. Tại dấu nhắc, nhập cụm mật khẩu an toàn. Bạn có thể để trống và nhấn enter nếu bạn không cần cụm mật khẩu.

    Nhập một tệp để lưu khóa (/Users/[you[/.ssh/id_rsa): [Nhấn enter]

  3. Để kết nối với máy ảo Vagrant, hãy nhập lệnh sau

    ssh vagrant @ localhost -p 2222

Khi bạn nhận được thông báo sau, hãy gõ vào yes và nhấn 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. Bây giờ để thiết lập loại kết nối SSH: $ vagrant ssh

  2. Sao chép khóa công khai của máy chủ vào tệp ủy quyền_key trong Vagrant VM. Để làm điều đó, hãy truy cập thư mục của Users Users / [you] /. Ssh và sao chép nội dung trong tệp id_rsa.pub trong máy chủ và gửi vào tập tin ~ / .ssh / ủy quyền_key trong tệp Vagrant VM.

  3. Thay đổi quyền trên thư mục SSH và tệp ủy quyền trong Vagrant VM
  4. Khởi động lại vagrant với: $ vagrant tải lại

0

Tôi đã khởi động máy, sau đó:

vagrant ssh-config

Tôi đã nhận được những điều sau đây:

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

Sau đó tôi đã chạy

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

Máy khởi động từ đây trở đi

  • El Capitan 10.11.1 Beta (15B38b)
  • Hộp ảo 5.0.8 r103449
  • Âm đạo 1.7.4

0

Giữa tất cả các câu trả lời ở đây, có rất nhiều điều tốt để thử. Để hoàn thiện, nếu bạn

ssh vagrant@localhost -p 2222

như @Bizmate gợi ý, và nó thất bại, hãy chắc chắn rằng bạn có

AllowUsers vagrant

trong máy /etc/ssh/sshd_configkhách / vagrant của bạn.


0

Tôi đang sử dụng Vagrant với thiết lập Puphpet từ tháng 5 năm 2015 và gặp vấn đề này. Có vẻ như cấu hình được tạo không xử lý hành vi Vagrant 1.7.4 (hoặc có thể sớm hơn một chút?) Khi tạo lại các khóa ssh nếu phát hiện khóa không an toàn.

Tôi đã giải quyết nó bằng cách thêm vào phần sau trong Puphpet đã tạo Vagrantfile (thiết lập cục bộ) bên trong mệnh đề "if File.file? (CustomKey)":

config.ssh.insert_key = false

Cam kết tham chiếu


0

Đây là tất cả các bước chính xác mà tôi đã làm theo để khắc phục sự cố dưới đây này xảy ra khi chạy lệnh.

Đây là những bước tôi đã làm theo

  1. tạo một thư mục. ví dụ: F: \ dự án
  2. Mở thư mục này trong git bash và chạy lệnh này ssh-keygen -t rsa -b 4096 -C "your_email@example.com" (đặt địa chỉ email hợp lệ)
  3. Sau đó tạo cặp khóa trong hai tệp riêng biệt trong thư mục dự án. ví dụ: dự án (tệp khóa riêng), project.pub (tệp khóa công khai)
  4. Chuyển đến vị trí này C: \ Users \ acer.vagrant.d và tìm tệp insecure_private_key
  5. Nhận sao lưu tệp và sao chép nội dung của khóa riêng vừa tạo và dán vào tệp insecure_private_key. Sau đó, sao chép insecure_private_key và dán nó vào vị trí này.
  6. Bây giờ mơ hồ lên trong vị trí dự án của bạn. sau khi tạo vấn đề ở trên, hãy nhập ssh và nhập tên người dùng, mật khẩu. (tên người dùng và mật khẩu mặc định được đặt là vagrant)
  7. Đi vào bên trong vị trí này cd /home/vagrant/.ssh và nhập mv ủy quyền_keys ủy quyền_keys_bk
  8. Sau đó nhập ls -al và nhập vi ủy quyền cho trình soạn thảo vi tập tin ủy quyền mở.
  9. Mở khóa công khai được tạo từ notepad ++ (project.pub) và sao chép nội dung Sau đó nhấn i trên git bash để bật chế độ chèn trên trình soạn thảo vi và nhấp chuột phải và dán. Sau khi nhấn thoát để thoát khỏi chế độ chèn
  10. : wq! để lưu tệp và gõ ls -al
  11. Sau đó, quyền được thiết lập như dưới đây không cần thay đổi drwx ------. 2 người lang thang 4096 Ngày 13 tháng 2 15:33. drwx ------. 4 vagrant vagrant 4096 Feb 13 14:04 .. -rw -------. 1 vagrant vagrant 743 Ngày 13 tháng 2 14:26 ủy quyền_keys -rw -------. 1 root 409 ngày 13 tháng 2 13:57 ủy quyền_keys_bk -rw -------. 1 vagrant vagrant 409 Ngày 2 tháng 1 23:09 ủy quyền_keys_originial Nếu không, hãy gõ chmod 600 ủy quyền và nhập lệnh này quá chown vagrant: vagrant ủy quyền_keys
  12. Cuối cùng chạy dừng lại và tiếp tục đi lên.

****** / TÌM HIỂU ĐẾN VẬY ******


0

Chỉ dành cho những người đã từng là những kẻ ngốc như tôi, hoặc đã có điều gì đó kỳ lạ xảy ra với cỗ máy mơ hồ của họ. Lỗi này cũng có thể xảy ra khi bạn thay đổi quyền của thư mục nhà của người dùng mơ hồ (cố tình hoặc vô tình).

Thay vào đó, bạn có thể đăng nhập (như được mô tả trong các bài đăng khác) bằng mật khẩu ('vagrant') và sau đó chạy lệnh sau để sửa các quyền.

sudo chown -R vagrant:vagrant /home/vagrant

Sau đó, bạn sẽ có thể đăng nhập lại mà không cần nhập mật khẩu.

TL; DR: Các quyền trên thư mục nhà mơ hồ của bạn bị sai.


0

Đơn giản:

homestead destroy
homestead up

Chỉnh sửa (Không đơn giản như suy nghĩ đầu tiên):

Vấn đề là các phiên bản mới của việc sử dụng homestead php7.0và một số thứ khác. Để tránh sự lộn xộn này, hãy đảm bảo bạn đặt verisontrong Homestead.yml:

version: "0"

0

Tôi đã giải quyết vấn đề này bằng cách chạy các lệnh trên windows 7 CMD như được đưa ra ở đây là liên kết bài cuối cùng trên chuỗi này,

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

Đã đánh vào đầu tôi trong vài ngày qua trên một hộp cơ sở đóng gói lại. (Mac OS X, El Capitan)

Theo quy trình của @Radek, tôi đã thực hiện 'vagrant ssh-config' trên hộp nguồn và nhận được:

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

Trên bản sao mới, lệnh đó đã cho tôi:

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

Vì vậy, tôi chỉ cần thêm dòng này trong bản sao mới:

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

Không hoàn hảo, nhưng tôi có thể tiếp tục cuộc sống của mình.


0

Một giải pháp đơn giản khác, trong các cửa sổ, đi đến tệp Homestead / Vagrantfile và thêm các dòng này để kết nối với tên người dùng / mật khẩu thay vì khóa riêng:

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

Vì vậy, cuối cùng một phần của tập tin sẽ trông như thế này:

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

Hy vọng điều này giúp đỡ ..


0

Tôi đã thử điều này trên máy VM của tôi

thay đổi quyền / nhà / vagrant (đã thực hiện chmod 700 trên đó)

bây giờ tôi có thể ssh trực tiếp vào hộp của tôi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.