Host key verification failed
nvim --version:
NVIM v0.8.3
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compiled by runneradmin@fv-az171-224
Features: -acl +iconv +tui
See ":help feature-compile"
system vimrc file: "$VIM\sysinit.vim"
fall-back for $VIM: "C:/Program Files (x86)/nvim/share/nvim"
Run :checkhealth for more info
git --version:git version 2.24.1.windows.2- Operating system/version: W10
- Terminal name/version: Neovide
Steps to reproduce
- Add
use 'nvim-treesitter/treesitter'toplugins.lua - Restart Neovim
- Use
:PackerSync - Get the following error for treesitter:
fatal: could not read Username for 'https://github.com': terminal prompts disabled - Follow these tutorials to generate an SSH key and put it in GitHub, then type
git config --global url.ssh://[email protected]/.insteadOf https://github.com/into Git Bash (So basically, follow #748) - Restart Neovim
- Use
:PackerSync
Actual behaviour
Got the following error for all plugins:
Cloning into 'C:\Users\mikwee\AppData\Local\nvim-data\site\pack\packer\start\[NAME OF PACKAGE]'...
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Expected behaviour
I expect Packer to install all specified packages correctly.
packer files
Plugin specification file(s)
You mean plugins.lua? Here it is:
local ensure_packer = function()
local fn = vim.fn
local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
if fn.empty(fn.glob(install_path)) > 0 then
fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
vim.cmd [[packadd packer.nvim]]
return true
end
return false
end
local packer_bootstrap = ensure_packer()
return require('packer').startup(function(use)
use 'wbthomason/packer.nvim'
use 'ellisonleao/gruvbox.nvim'
use 'nvim-tree/nvim-tree.lua'
use 'nvim-tree/nvim-web-devicons'
use 'nvim-lualine/lualine.nvim'
use 'nvim-treesitter/treesitter'
use {
'nvim-telescope/telescope.nvim',
tag = '0.1.0',
requires = { {'nvim-lua/plenary.nvim'} }
}
-- Automatically set up your configuration after cloning packer.nvim
-- Put this at the end after all plugins
if packer_bootstrap then
require('packer').sync()
end
end)
packer log file
[WARN 18/02/2023 00:05:38 38006809283100] ...ite\pack\packer\start\packer.nvim/lua/packer/display.lua:812: No plugin selected!
[WARN 18/02/2023 00:05:58 38026952738000] ...ite\pack\packer\start\packer.nvim/lua/packer/display.lua:711: No plugin selected!
[WARN 18/02/2023 00:06:06 38034808999600] ...ite\pack\packer\start\packer.nvim/lua/packer/display.lua:711: No plugin selected!
[WARN 18/02/2023 00:06:06 38035241346200] ...ite\pack\packer\start\packer.nvim/lua/packer/display.lua:711: No plugin selected!
[WARN 18/02/2023 00:39:22 40031658395200] ...ite\pack\packer\start\packer.nvim/lua/packer/display.lua:730: Unable to find the diff for this line
packer compiled file
packer_compiled.lua for me, but here it goes:
-- Automatically generated packer.nvim plugin loader code
if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
return
end
vim.api.nvim_command('packadd packer.nvim')
local no_errors, error_msg = pcall(function()
_G._packer = _G._packer or {}
_G._packer.inside_compile = true
local time
local profile_info
local should_profile = false
if should_profile then
local hrtime = vim.loop.hrtime
profile_info = {}
time = function(chunk, start)
if start then
profile_info[chunk] = hrtime()
else
profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
end
end
else
time = function(chunk, start) end
end
local function save_profiles(threshold)
local sorted_times = {}
for chunk_name, time_taken in pairs(profile_info) do
sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
end
table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
local results = {}
for i, elem in ipairs(sorted_times) do
if not threshold or threshold and elem[2] > threshold then
results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
end
end
if threshold then
table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)')
end
_G._packer.profile_output = results
end
time([[Luarocks path setup]], true)
local package_path_str = "C:\\Users\\mikwee\\AppData\\Local\\Temp\\nvim\\packer_hererocks\\2.1.0-beta3\\share\\lua\\5.1\\?.lua;C:\\Users\\mikwee\\AppData\\Local\\Temp\\nvim\\packer_hererocks\\2.1.0-beta3\\share\\lua\\5.1\\?\\init.lua;C:\\Users\\mikwee\\AppData\\Local\\Temp\\nvim\\packer_hererocks\\2.1.0-beta3\\lib\\luarocks\\rocks-5.1\\?.lua;C:\\Users\\mikwee\\AppData\\Local\\Temp\\nvim\\packer_hererocks\\2.1.0-beta3\\lib\\luarocks\\rocks-5.1\\?\\init.lua"
local install_cpath_pattern = "C:\\Users\\mikwee\\AppData\\Local\\Temp\\nvim\\packer_hererocks\\2.1.0-beta3\\lib\\lua\\5.1\\?.so"
if not string.find(package.path, package_path_str, 1, true) then
package.path = package.path .. ';' .. package_path_str
end
if not string.find(package.cpath, install_cpath_pattern, 1, true) then
package.cpath = package.cpath .. ';' .. install_cpath_pattern
end
time([[Luarocks path setup]], false)
time([[try_loadstring definition]], true)
local function try_loadstring(s, component, name)
local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
if not success then
vim.schedule(function()
vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
end)
end
return result
end
time([[try_loadstring definition]], false)
time([[Defining packer_plugins]], true)
_G.packer_plugins = {
["gruvbox.nvim"] = {
loaded = true,
path = "C:\\Users\\mikwee\\AppData\\Local\\nvim-data\\site\\pack\\packer\\start\\gruvbox.nvim",
url = "https://github.com/ellisonleao/gruvbox.nvim"
},
["lualine.nvim"] = {
loaded = true,
path = "C:\\Users\\mikwee\\AppData\\Local\\nvim-data\\site\\pack\\packer\\start\\lualine.nvim",
url = "https://github.com/nvim-lualine/lualine.nvim"
},
["nvim-tree.lua"] = {
loaded = true,
path = "C:\\Users\\mikwee\\AppData\\Local\\nvim-data\\site\\pack\\packer\\start\\nvim-tree.lua",
url = "https://github.com/nvim-tree/nvim-tree.lua"
},
["nvim-web-devicons"] = {
loaded = true,
path = "C:\\Users\\mikwee\\AppData\\Local\\nvim-data\\site\\pack\\packer\\start\\nvim-web-devicons",
url = "https://github.com/nvim-tree/nvim-web-devicons"
},
["packer.nvim"] = {
loaded = true,
path = "C:\\Users\\mikwee\\AppData\\Local\\nvim-data\\site\\pack\\packer\\start\\packer.nvim",
url = "https://github.com/wbthomason/packer.nvim"
},
["plenary.nvim"] = {
loaded = true,
path = "C:\\Users\\mikwee\\AppData\\Local\\nvim-data\\site\\pack\\packer\\start\\plenary.nvim",
url = "https://github.com/nvim-lua/plenary.nvim"
},
["telescope.nvim"] = {
loaded = true,
path = "C:\\Users\\mikwee\\AppData\\Local\\nvim-data\\site\\pack\\packer\\start\\telescope.nvim",
url = "https://github.com/nvim-telescope/telescope.nvim"
},
treesitter = {
loaded = true,
path = "C:\\Users\\mikwee\\AppData\\Local\\nvim-data\\site\\pack\\packer\\start\\treesitter",
url = "https://github.com/nvim-treesitter/treesitter"
}
}
time([[Defining packer_plugins]], false)
_G._packer.inside_compile = false
if _G._packer.needs_bufread == true then
vim.cmd("doautocmd BufRead")
end
_G._packer.needs_bufread = false
if should_profile then save_profiles() end
end)
if not no_errors then
error_msg = error_msg:gsub('"', '\\"')
vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
end
Host key verification failed is an ssh issue, not a packer issue. You can verify this by trying to git clone the package yourself.
This happens when the fingerprint of the host changes. This must not happen for github. This usually means someone's doing an MITM attack.
I don't know how to debug this on windows. On Linux the host keys are stored in ~/.ssh/known_hosts. The first time you connect to a host, it's key gets stored here. If someone tries to MITM you, ssh will be able to detect this and it will say that the key is different from the one that we first encountered.
I've since removed my key from GitHub, and this issue keeps happening only with Packer.
https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key/
@mikwee