Каков наилучший способ сохранить открытый ключ ssh в настраиваемом бродячем окне? - PullRequest
0 голосов
/ 20 октября 2019

Я часто вижу неофициальные документы, в которых говорится, что вы должны сохранить vagrant открытый ssh-ключ пользователя при создании своего собственного окна, как показано ниже:

curl https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub >> /home/vagrant/.ssh/authorized_keys

И когда vagrant up с полем, следующее сообщение:показано:

default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default: 
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...

Мне кажется, что приведенный выше ключ mitchellh vagrant.pub не подходит.

Каков наилучший способ сохранить vagrant открытый ключ пользователя ssh?

1 Ответ

1 голос
/ 20 октября 2019

Ключ, который вы указываете на raw.githubusercontent.com, является примером, который не должен использоваться.

Кажется, что возвращенное сообщение говорит о том, что автоматически генерируется еще одна пара ключей :

default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...

, поэтому, если все идет правильно, ваш контейнер теперь использует новый открытый ключ в /home/vagrant/.ssh/authorized_keys, а ваш локальный хост использует новый закрытый ключ в $HOME/.ssh/id_rsa.

Сравните эти файлы с файлами, которые вы первоначально скачали, посмотрите время изменения обоих файлов (на локальном хосте и в бродячем контейнере)

Создайте свой собственный ключ

Просто запустите:

ssh-keygen -f ~/.ssh/vagrant-dedicated

см. man ssh-keygen для длина ключа , шифр и т. Д. *

Пример вывода:

  • диалоговое окно:

    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    
  • Простой вывод:

    Generating public/private rsa key pair.
    Your identification has been saved in vagrant-dedicated.
    Your public key has been saved in vagrant-dedicated.pub.
    The key fingerprint is:
    SHA256:U2YfVbMlCUed7tXrvf3xBQoLB3glpSpto4hwdjTKwV0 user @host  
    The key's randomart image is:
    +---[RSA 2048]----+
    |      E ..o .o==+|
    | . . . . +   o.o=|
    |  o + . + + . ...|
    | . + o o = . . .o|
    |. = o = S o . o o|
    |.+ o + . + o . + |
    |. . .     . . ..o|
    |               .*|
    |               .*|
    +----[SHA256]-----+
    

Это создаст двафайлы:

ls -l ~/.ssh/vagrant-dedicated*
-rw------- 1 user  user  1679 Oct 20 12:18 vagrant-dedicated
-rw-r--r-- 1 user  user   394 Oct 20 12:18 vagrant-dedicated.pub


head -n1 ~/.ssh/vagrant-dedicated*
==> vagrant-dedicated <==
-----BEGIN RSA PRIVATE KEY-----

==> vagrant-dedicated.pub <==
ssh-rsa AAAAB3...0y/5 user@host  

Замените содержимое контейнеров /home/vagrant/.ssh/authorized_keys содержимым ~/.ssh/vagrant-dedicated.pub, затем используйте vagrant-dedicated в качестве личного ключа для подключения ssh.

ssh -i ~/.ssh/vagrant-dedicated vagrant@container

Примечание о fingerprint

Перед первым подключением к новому целевому хосту ssh запросит у вас отпечаток хоста.

Вы можете сравнить вывод

ssh-keygen -vlf /etc/ssh/ssh_host_rsa_key.pub 

на целевом бродячем контейнерес выходом вашего первого выходного соединения:

ssh -o VisualHostKey=true -i ~/.ssh/vagrant-dedicated vagrant@container

При первом запуске начнется вывод, как:

The authenticity of host 'container (10.12.34.56)' can't be established.

Затем отпечаток ,что-то вроде

ECDSA key fingerprint is SHA256:9M+2wGn0nZO3GPYkWuuxzXqI3nIbk5IJJ5xwhsxwbXk

и Ascii art представление:

+---[ECDSA 256]---+
|     . .. .      |
|      = .+ E     |
|       =oo.      |
|       .=..      |
|        S=o.     |
|         o+=o..o |
|          =+*X*..|
|         . =*+#+.|
|          .o=O+= |
+----[SHA256]-----+

Обе команды должны давать идентичные fingerprint и ascii art .

...