1. 程式人生 > >virtualbox+vagrant學習-4-Vagrantfile-6-SSH Settings

virtualbox+vagrant學習-4-Vagrantfile-6-SSH Settings

SSH Settings

配置名稱空間:config.ssh

config.ssh的設定涉及到將如何配置vagrant使其通過ssh訪問你的計算機。與大多數vagrant設定一樣,預設設定通常都很好,但是你可以根據需要進行微調。


Available Settings可用設定

  • config.ssh.username (string) :這將設定Vagrant將SSH設定為預設的使用者名稱。如果Providers檢測到更合適的使用者,它們可以自由地重寫該命令。預設情況下,該值為“vagrant”,因為大多數公共boxes都是這樣做的。
  • config.ssh.password
     (string) :這將設定vagrant將用於驗證SSH使用者身份的密碼。注意,Vagrant建議你使用基於鍵的身份驗證,而不是基於密碼的(請參閱下面的private_key_path)。如果使用密碼,當insert_key為true時,vagrant將自動插入一個金鑰對。
  • config.ssh.host (string):SSH要進入的主機名或IP。預設情況下,這是空的,因為Providers通常會為你解決這個問題。
  • config.ssh.port (integer)SSH連線的埠,預設為22
  • config.ssh.guest_port (integer)SSH
    正在執行的客戶機上的埠。一些Providers使用它來檢測SSH的轉發埠。例如,如果將其設定為22(預設),並且Vagrant從主機上的4567埠檢測到一個連線到客戶端上22埠的轉發埠,如果沒有其他選擇,Vagrant將嘗試使用主機的4567與客戶進行對話。
  • config.ssh.private_key_path (string, array of strings):指向用於SSH連線到客戶機器的私鑰的路徑。預設情況下,這是一個不安全的私鑰,與vagrant一起運輸,因為這是公共boxes使用的。如果你使用自定義SSH金鑰建立自己的自定義box,則應該指向該私鑰。你還可以通過將其設定為陣列來指定多個私鑰。例如,如果你使用預設私鑰來啟動機器時,這很有用。
    但是稍後可能會用更安全的金鑰替換
  • config.ssh.keys_only (boolean) :只使用vagrant提供的SSH私鑰(不要使用儲存在SSH代理中的任何金鑰)。預設值為true。
  • config.ssh.verify_host_key (string, symbol) :執行嚴格的主機金鑰驗證。預設值是:never。
  • config.ssh.paranoid (boolean) :執行嚴格的主機金鑰驗證。預設值為false。

    ⚠️config.ssh.paranoid方法已經被棄用,並將在未來的版本中刪除。請使用config.ssh.verify_host_key方法替代它。

  • config.ssh.forward_agent (boolean) :如果為true,則啟用SSH連線上的代理轉發。預設值為false。
  • config.ssh.forward_x11 (boolean):如果為true,則啟用通過SSH連線的X11轉發。預設值為false。
  • config.ssh.forward_env (array of strings):要轉發給客戶機的主機環境變數陣列。如果你熟悉OpenSSH,那麼這對應於SendEnv引數。
config.ssh.forward_env = ["CUSTOM_VAR"]
  • config.ssh.insert_key (boolean):如果為true,Vagrant將自動插入一個金鑰對用於SSH,如果檢測到該金鑰,則替換vagrant的預設金鑰。預設情況下為true

    只有當你還沒有使用私鑰進行身份驗證或者依賴於預設的不安全金鑰時,這才會產生效果。如果你不需要關心專案中的安全性,並且希望繼續使用預設的不安全金鑰,則將其設定為false。

  • config.ssh.proxy_command (string):執行的命令列命令,該命令從stdin上接收要傳送到的SSH的資料。這可以用來代理SSH連線。命令中的%h被替換為主機名,%p被替換為埠號。
  • config.ssh.pty (boolean) :如果為true,pty將用於provisioning。預設值為false。這個設定是一個高階特性,除非絕對必要,否則不應該啟用它。它打破了vagrant的一些其他特徵,實際上只在絕對必要的情況下才會暴露出來。如果你能找到一種不使用pty的方法,那麼建議你這樣做。

    啟用pty時,必須注意命令輸出不會流到UI中。一旦命令完成時,輸出將完全交付給UI。

  • config.ssh.keep_alive (boolean) :如果為true,這個設定SSH預設情況下每5秒傳送一個keep-alive包,以保持連線的活力。
  • config.ssh.shell (string) :從vagrant執行SSH命令時使用的shell。預設情況下,這是bash -l。注意,這對執行vagrant ssh時獲得的shell沒有影響。此配置選項僅影響在vagrant內部執行命令時使用的shell。
  • config.ssh.export_command_template (string):用於在活躍會話中生成匯出環境變數的模板。當使用與Bourne不相容的shell(如C shell)時,這一點非常有用。該模板支援兩個變數,這兩個變數被替換為所需的環境變數鍵和環境變數值:%ENV_KEY%和%ENV_VALUE%。預設模板為:
config.ssh.export_command_template = 'export %ENV_KEY%="%ENV_VALUE%"'
  • config.ssh.sudo_command (string) :使用sudo執行命令時使用的命令。這個預設值是sudo -E -H %c。%c將被正在執行的命令替換。
  • config.ssh.compression (boolean) :如果為false,此設定將不包括ssh進入機器時的壓縮設定。如果沒有設定,它將預設為true, ssh將啟用Compression=yes。
  • config.ssh.dsa_authentication (boolean) :如果為false,此設定將不包括ssh進入機器時的DSAAuthentication值。如果沒有設定這個值,它將預設為true, DSAAuthentication=yes將與ssh一起使用。
  • config.ssh.extra_args (array of strings) :這個設定值將直接傳遞到ssh可執行檔案中。這允許你傳遞任意命令來執行諸如反向隧道穿到ssh程式中的操作。這些選項可以是單個標記設定為字串,如IPV6的“-6”,也可以是引數陣列,如[“-L”、“8008:localhost:80”],用於在guest上啟用從主機埠8008到埠80的隧道。