
我正在嘗試在新的 Ubuntu 14.04 系統上設定 scp。該系統將充當另一個 Ubuntu 14.04 系統上已配置的 SSH 伺服器的 SSH 用戶端。我可以使用 putty 透過 SSH 連接到現有的 SSH 伺服器實例,但在使用私鑰配置新的客戶端系統時遇到問題。我是這些系統的唯一用戶,因此我使用現有的私鑰,因為它對應於 SSH 伺服器上已有的公鑰。
到目前為止,在新的客戶端系統上我已將私鑰新增至檔案~./ssh/known_hosts
和/etc/ssh/<username>/authorized_keys
檔案。我還修改了sshd_config
允許基於 RSA 的身份驗證。當我在客戶端上執行 scp 命令時,我得到以下輸出:
The authenticity of host '192.168.17.99 (192.168.17.99)' can't be established.
ECDSA key fingerprint is 8a:cc:5b:f0:c4:ef:d7:e1:94:67:59:72:8d:a9:60:0b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.17.99' (ECDSA) to the list of known hosts.
Permission denied (publickey).
cp: cannot stat ‘[email protected]’: No such file or directory
我最初使用 puttygen 建立金鑰對。我將私鑰檔案 (.ppk) 上傳到客戶端系統,並使用 cat 將內容合併到檔案中~./ssh/known_hosts
,然後將其複製到/etc/ssh/user/authorized_keys
檔案中。這兩個檔案都包含相同的公鑰和私鑰。這是我的 ssh 配置:
Host *
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
我認為問題可能出在 ECDSA 上。看起來好像有東西需要 ECDSA 金鑰,但我使用的是基於 RSA 的金鑰。這是問題所在嗎?如果是這樣,是什麼控制著它以及如何改變它?我的另一個擔憂是known_hosts 和authorized_keys 檔案的內容似乎是putty 特定格式,所以我想知道這是否也可能是一個問題。