使用 scp 和密碼

使用 scp 和密碼

我可以將密碼作為 SCP 的參數輸入,而不是提示輸入密碼嗎?

使用SCP複製檔案時如何保存密碼? 這個問題是類似的,但答案涉及完全廢除 SSH 密碼。

答案1

有幾種選擇:

  1. 使用 sshpass

執行命令:

sshpass -p 'password' scp filename user@host:
  • 安裝 sshpass:

    • 烏班圖:

    sudo apt install sshpass

sshpass 人

sshpass - 非互動式 ssh 密碼提供程序

sshpass 是一個實用程序,設計用於使用稱為“鍵盤交互”密碼身份驗證的模式運行 ssh,但以非交互模式運行。

ssh 使用直接 TTY 存取來確保密碼確實是由互動式鍵盤使用者發出的。 Sshpass 在專用的 tty 中運行 ssh,欺騙它認為它正在從互動式用戶那裡獲取密碼。

要運行的命令在 sshpass 自己的選項之後指定。通常它是帶有參數的“ssh”,但它也可以是任何其他命令。然而,ssh 使用的密碼提示目前已硬編碼到 sshpass 中。

  1. 使用預計(或其他腳本)

編寫一個腳本,一旦識別出 ssh 密碼提示,腳本就會注入密碼

  1. 使用帶有密鑰對的 ssh(而不是使用密碼)

恕我直言 - 這是最安全的方法,並且不需要使用密碼。

使用公鑰/私鑰來執行sshscp操作而無需輸入密碼。

答案2

關於如何做到這一點已經有了答案,所以我將重點討論為什麼不這樣做。

  • 如果您在命令列上傳遞密碼,則本機使用者可以使用ps或任何其他進程列表器來窺探該密碼。
  • 創建難以猜測且易於記住的密碼很困難:因此不要在 ssh 中使用密碼。

而是使用公鑰/私鑰,並使用密鑰代理來暫時記住您的密鑰。

相關內容