Key-Authentication

添加額外的密鑰對進行身份驗證

  • November 3, 2018

我需要一個新的密鑰對用於允許登錄伺服器的附加主機(但由於安全原因,我不能共享現有的密鑰對)。

現在,我在伺服器上創建了一個可以正常工作的新對ssh-keygen -t rsa -f newkey.key,然後我將它們複製到客戶端並嘗試使用登錄,ssh user@server -i newkey.key但它不會讓我進入,而是我得到:

$ ssh user@server -i newkey.key
Warning: Permanently added 'server' (ECDSA) to list ofknown hosts.
Permission denied (publickey).
$

為什麼會這樣,我該如何做?newkey.key權限設置為400.

當人們嘗試設置基於密鑰的身份驗證時,我看到的最常見問題之一是他們忘記將密鑰對的公共部分添加到authorized_keys文件中。

server.example.com您生成公鑰/私鑰對時 -

user@server:~/ $ ssh-keygen -t rsa -f newkey.key

根據需要設置密碼(或不設置密碼)。

然後將公開的一半放入authorized_keys文件中-

user@server:~/ $ cat ~/.ssh/newkey.key.pub >> ~/.ssh/authorized_keys

然後將密鑰的私有部分複製到您的客戶端電腦,您應該能夠連接 -

user@client:~/ $ ls -1 .ssh
authorized_keys
config
newkey.key

user@client:~/ $ ssh -i ~/.ssh/newkey.key user@server

根據@Haxiel 和@RubberStamp(和我自己的)協議進行編輯,即不應將私鑰留在用於訪問的伺服器上。

請務必從用於連接的伺服器中刪除私鑰,除非您別無選擇。這是一個非常容易避免的安全問題。

密鑰應該在本地機器上生成,公鑰通過 scp 或 ssh-copy-id 複製到遠端機器…首選後一種選擇,因為它確保公鑰正確放置在遠端 ~/ .ssh/authorized_keys 文件以及對該文件的適當權限

引用自:https://unix.stackexchange.com/questions/479574