Vagrant ホストに ssh できないのはなぜですか? [email protected]: 権限が拒否されました (公開鍵)

Vagrant ホストに ssh できないのはなぜですか? [email protected]: 権限が拒否されました (公開鍵)

プロジェクトVagrantステータス用に5つのVMを作成しました

Current machine states:

master-1                  running (virtualbox)
master-2                  running (virtualbox)
master-3                  running (virtualbox)
node-1                    running (virtualbox)
node-2                    running (virtualbox)

できます

vagrant ssh master-1
vagrant ssh master-2
vagrant ssh master-3

vagrant ssh-config の表示

vagrant ssh-config
Host master-1
  HostName 127.0.0.1
  User vagrant
  Port 2206
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /home/miki/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

しかし

ssh [email protected]
[email protected]: Permission denied (publickey).

失敗します。

id_rsa.pubを確認しました

ssh-rsa 
AAAAB3NzaC1yc2EAAAADAQABAAACAQCZmhxzwwJJ1z/5rgoprHc31gneGY5rzFd/giE5ehZSH75WqT1hQKQ2gZUN8A3L+04oZ9H1uOUQHJBPV5mj7+FKkE+hPuTDVSUXcbYC9DlhurbmComoMh....oIQ== jovo@jovo-IdeaPad

5つのVMすべてに異なる認証キーがあることがわかります

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key

自分のホストから 5 つのホストすべてに SSH を有効にするにはどうすればよいでしょうか?

答え1

私はこれに従いましたSO投稿

ssh [email protected] -p 2222 -o LogLevel=FATAL -o Compression=yes -o DSAAuthentication=yes -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i /home/miki/.vagrant.d/insecure_private_key

私はid_rsaを追加することで別の解決策も見つけました

Vagrant.configure("2") do |config|
  config.ssh.insert_key = false
  config.ssh.private_key_path = ['~/.vagrant.d/insecure_private_key', '~/.ssh/id_rsa']
  config.vm.provision "file", source: "~/.ssh/id_rsa.pub", destination: "~/.ssh/authorized_keys"
  (1..3).each do |i|
    config.vm.define "master-#{i}" do |master|
      master.vm.box = "ubuntu/bionic64"
    end
  end
  (1..2).each do |i|
    config.vm.define "node-#{i}" do |node|
      node.vm.box = "ubuntu/bionic64"
    end
  end

  config.vm.network "public_network", :bridge => "wlo1"
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "3072"
    vb.cpus = "3"
  end
end

答え2

生成中の公開鍵をコピーするか、次のコマンドで生成する必要があります:-

ホストマシンがLinuxマシンであることを期待する

->ssh-keygen -t rsa -b 4096

上記のコマンドは、公開鍵を作成します。

/home/user/.ssh/id_rsa.pub

その公開キーをコピーし、SSH する VM マシンに貼り付ける必要があります。貼り付け先のパスは次のとおりです。

->/home/user/.ssh/authorized_keys

すべての VM に同じ公開キーを貼り付けます。これにより、ホストがすべての VM マシンにパスワードなしでアクセスできるようになります。

上記のパスに authorized_keys というファイルがない場合、その時点で権限 700 でファイルを作成する必要があります。

最後に、設定ファイルで確認した主な点は、SSH のポート番号が変更されたことです。したがって、SSH で接続するためのコマンドは次のようになります。

-> ssh -p 2206[メールアドレス]

私ができることはちょっとしたこと。

関連情報