SSH 本地 ssh目錄下的公鑰檔案最好刪掉

2022-04-17 17:40:14 字數 720 閱讀 8296

這次ssh amazon ec2的instance,在家裡電腦登入ok,到了公司電腦登入失敗(只支援公鑰機制)。私鑰已經拷貝到公司的ubuntu上了,奇怪。

後來發現是.ssh目錄下存在一些公鑰檔案導致了這個問題。ssh的時候使用-vvv可以看到很多除錯資訊,在這裡看到在ssh認證的時候,傳送過去的公鑰不是amazon ec2的公鑰,而是我本地.ssh目錄下另外乙個公鑰。

所以刪除了.ssh目錄下所有的公鑰檔案之後,就ok了。

我猜想是這樣:

1. 如果在.ssh/config下配置了針對該host的identityfile,那麼公鑰不會搞錯,ssh會尋找私鑰檔名.pub這樣的檔案。

2. 貌似私鑰檔案中也是包含了公鑰的,因為只給定乙個私鑰,ssh也可以分析並傳送公鑰給server

3. 貌似ssh的行為是,如果.ssh目錄下有username@hostname簽名的公鑰,就會去使用這個/些公鑰,而不是使用私鑰中的。

anyway,把公鑰檔案都刪掉就沒煩惱了,反正一般生成了公鑰私鑰對之後,公鑰都是上傳到伺服器側的,不再需要了。

[update]

發現這麼做的乙個***:ubuntu的ssh-agent會掃瞄.ssh下的公鑰然後自動ssh-add,這樣以後登入只需要輸入一次私鑰的密碼之後就不用輸入了。

但是現在.ssh下的公鑰被我刪掉了,所以現在每次都要輸入密碼。

所以可以將公鑰移到另外乙個地方,然後每次有新的key的話,用ssh-add手動新增一下。

SSH公鑰秘鑰

可是碼雲不認識你是誰,這個時候就提示你輸入賬號密碼來確認是誰誰誰提交了這次 往後的日子裡每次修改提交 都需要輸入賬號密碼來確認身份,這是個很煩的事情,所以出現了 ssh 公鑰 這種形式來解決這個問題。使用 git,第一件事就是通過使用者名稱密碼生成公鑰和私鑰,這是一一對應的關係,就像一把鑰匙開一把鎖...

本地新增多個ssh公鑰

在一台電腦上生成多個公鑰格式ssh keygen t rsa c 郵箱 公鑰名 例如 ssh keygen t rsa c 456 qq.com f ssh id github vigilr ssh路徑一般是在.ss 件夾裡的 配置.ss 件夾下的config檔案 如果沒有就新建乙個,沒有字尾 co...

配置ssh公鑰

ssh keygen t rsa c 你的郵箱 配置git賬戶 git config global user.name xuhaiyan git config global user.email haiyan.xu.vip gmail.com cd ssh cat id rsa.pub 配置ssh公...