sshpass報錯Host key verification failed.

sshpass連接時報錯Host key verification failed.

ssh命令登錄不能帶密碼,需要再次從命令行輸入密碼確認的。
sshpass可以帶密碼進行免確認的ssh登錄,且後面可以攜帶需要執行的命令。
密碼中有特殊符號需要用單引號引起來。

最近在使用sshpass進行scp跨機器拷貝時總是報錯:
sshpass -p ‘123#456’ scp -r -P 3577 /home/file [email protected]:/home/file
報錯信息:
Host key verification failed.

解決方法:
由於該遠程機器從未連接過,
檢查known_hosts文件:vi ~/.ssh/known_hosts ,看有沒有該IP(168.28.136.22)的信息,
如果沒有則說明沒有連接過該機器

  1. 需要先用ssh連接一下:ssh -p 22-o StrictHostKeyChecking=no [email protected]
$ ssh -p 22-o StrictHostKeyChecking=no  [email protected] 
[email protected]'s password: #輸入密碼確認 

再次檢查known_hosts文件:vi ~/.ssh/known_hosts ,發現有該機器的地址sha2記錄了

$ vi ~/.ssh/known_hosts
[168.28.136.22]:22 ecdsa-sha2-nistp256 AAAssssssxyzxyzhLXNxxxxxxmlzdHAyxxxxxxAyyyyyyyyyyyeyyyyyyyyyyyyyOxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0dZpIzA=
  1. 然後再用sshpass 即可
sshpass -p '123#456' scp -r -P 3577 /home/file [email protected]:/home/file

~/.ssh/known_hosts 文件的作用?
ssh會把你所有訪問過的電腦的公鑰(public key)都記錄在~/.ssh/known_hosts文件。
當下次訪問相同電腦時,OpenSSH會覈對公鑰,
如果核對不上,OpenSSH會發出警告, 避免你受到DNS Hijack之類的攻擊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章