Linux

將密碼添加到 .ssh/config

  • November 23, 2020

我正在使用 ubuntu 12.04。我每天使用 ssh 連接到許多伺服器,所以我將它們的參數放在*.ssh/config*文件中;像這樣 :

Host server1
User tux
Port 2202
HostName xxx.x.xx.x

我知道我們應該使用密鑰對來確保安全性,但是有時我們無法將公鑰添加到遠端機器中(例如,接受密碼並執行特定命令的公共 SSH 伺服器,或者沒有主目錄的使用者)。

那麼,有沒有辦法為每個連接在這個文件中輸入密碼?所以當伺服器要求輸入密碼時,終端把它的通行證發送給伺服器,所以我不需要每次都輸入密碼。

不,沒有方法可以在命令行上以非互動方式指定或提供密碼,以使用 openssh 內置機制進行 ssh 身份驗證。至少不是我所知道的。您可以將密碼硬編碼到期望腳本中,但這也不是一個好的解決方案。

正如邁克爾所說,您肯定希望使用密鑰對進行無密碼身份驗證,最後私鑰幾乎是文件中的一個大密碼。

為了避免一連串的評論:是的,這是不安全的(甚至可以說是不安全的)。我強烈建議您僅在隔離網路上的實驗室情況下或在不涉及生產伺服器或潛在生產伺服器的類似情況下執行此操作,而無需完全重置/格式化。

我想設置它,因為我認為我的 2950 交換機不支持私鑰/公鑰,我希望在某個時候獲得這些知識,但我還沒有。

使用別名和 sshpass 可以完成此操作。

  1. 安裝 sshpass
  2. 更改您的*.ssh/config*文件以包含問題中列出的使用者名
  3. 為您的終端添加別名(我使用 .bashrc 並建議不要使用 gloabl 設置)
  4. 使用別名登錄目標

我的範例別名是:

alias ssc='sshpass -pcisco ssh'

其中“cisco”是密碼。注意 -p 和密碼之間沒有空格。

用法是(參考問題):

ssc server1

注意:這僅針對那些使用搜尋引擎的人回答了標題中的問題。如果您使用問題範例之類的伺服器,則應使用私鑰/公鑰對而不是此答案

引用自:https://serverfault.com/questions/535028