如何在不帶 -i 選項的情況下使用 scp 命令並且仍然找到私鑰

如何在不帶 -i 選項的情況下使用 scp 命令並且仍然找到私鑰

我登入 win2008 機器上,scp使用 -i 選項運行,該選項指向 win2008 機器上私鑰所在的目錄。

scp -i "cygdrive/c/users/userid/privkey..." user@linux:/dirA/dirB/* .

當我在 win2008 盒子上執行此命令時,它會登入 Linux 盒子,匹配密鑰並將檔案發送到 win2008 盒子。如果我不指定密鑰,它會提示我輸入密碼。

我使用 ssh-keygen 在 win2008 盒子上產生了金鑰。我在 Winsshd 設定中的公鑰下新增了 Linux 金鑰。然後我從 ssh-keygen 中取出金鑰並將其放在 Linux 盒子上。

scp 指令在哪裡找金鑰?如何scp在不將密鑰作為參數傳遞的情況下從 win2008 框中運行?

答案1

如果我正確理解你的問題,有幾個選擇...

  1. 以與 SSH 相同的方式設定預設身分文件位置,如此處所述...https://stackoverflow.com/questions/84096/setting-the-default-ssh-key-location

  2. 或為您的scp命令添加別名以包含修飾符,如下所示...alias scp='scp -i /path/of/keyfile'

它們都應該有效,但我建議選項 1 而不是選項 2。

答案2

我想我找到自己的答案了。顯然 scp 正在尋找名為 id_dsa 的私鑰文件,並且它希望該文件位於 .ssh 目錄中。一旦我在 cygwin 目錄結構中找到 home/.ssh(難題的另一個關鍵部分)並添加了名為 id_dsa 的私鑰文件,並運行了不帶 -i 選項的 scp 命令,它就起作用了。感謝大家以我的方式發送“聰明”的共鳴,以便我能夠解決這個問題。不再迷茫了!我喜歡這裡提出的所有建議。感謝快速回饋。

相關內容