我是一個非 sudo 用戶,試圖透過 ssh 連接到另一台伺服器。當我這樣做時,它抱怨主機的主機金鑰和 IP 位址已根據known_hosts 檔案更改(確實如此)。不幸的是,我無法更改known_hosts 文件,並且使用該-o StrictHostKeyChecking=no
選項會停用密碼身份驗證。
答案1
我無法更改
known_hosts
文件
如果您可以複製它,那麼您可以更改副本,然後告訴ssh
使用該副本。中的相關選項ssh_config
是:
GlobalKnownHostsFile
指定用於全域主機金鑰資料庫的一個或多個文件,以空格分隔。預設值為/etc/ssh/ssh_known_hosts
,/etc/ssh/ssh_known_hosts2
。
UserKnownHostsFile
指定用於使用者主機金鑰資料庫的一個或多個文件,以空格分隔。預設值為~/.ssh/known_hosts
,~/.ssh/known_hosts2
。
(來源)
可是等等!你說
使用該
-o StrictHostKeyChecking=no
選項停用密碼驗證。
我認為這不是禁用密碼身份驗證的選項。是新伺服器不允許。這意味著任何讓您實際連接到該特定伺服器的方法都無法與密碼身份驗證一起使用。無論您是否繞過過時的known_hosts
文件或修復它都沒有關係;伺服器本身配置為不允許密碼。
如果你確定這是正確的伺服器然後要求伺服器管理員允許密碼(或者他們可能會提供其他身份驗證方式)。請您的本機管理員更新該known_hosts
文件。