配置的命名空间:config.ssh
config.ssh
中的设置与配置 Vagrant 如何通过 SSH 访问您的计算机相关。 大多数 Vagrant 设置一样,一般使用默认设置即可,但也可以根据自己的喜好进行微调。
1. 可用的设置项
config.ssh.username
设置 Vagrant 默认使用的 SSH 用户名。如果 provider 检测到更合适的用户,则可以自由覆盖此内容。默认情况下,这是“vagrant”,因为这是大多数公共 box 使用的用户名。
config.ssh.password
设置用于认证 Vagrant 的 SSH 用户的密码。建议使用基于密钥的认证(参考 private_key_path),而不是密码。如果使用密码,如果 insert_key 为 true 的话 Vagrant 会自动插入到密钥对。
config.ssh.host
要用 SSH 连接到的主机名或 IP 地址。默认为空,因为 provider 通常会自动找出。
config.ssh.port
要用 SSH 连接到的端口。默认是 22。
config.ssh.guest_port
The port on the guest that SSH is running on. This is used by some providers to detect forwarded ports for SSH. For example, if this is set to 22 (the default), and Vagrant detects a forwarded port to port 22 on the guest from port 4567 on the host, Vagrant will attempt to use port 4567 to talk to the guest if there is no other option.
客户端上运行 SSH 的端口。这被一些 provider 用来检测转发的 SSH 端口。例如,如果设置为 22(默认值),并且 Vagrant 从主机上的端口 4567 检测到客户机端口 22 的转发端口,则 Vagrant 将尝试使用端口 4567 与客户机进行对话(如果没有其他端口) 选项。
config.ssh.private_key_path
用于通过 SSH 访问客户机的私钥路径。默认情况下,这是随 Vagrant 一起提供的不安全私钥,因为这是公共 box 使用的私钥。如果你使用自定义 SSH 密钥创建自己的自定义 box,则应该指向该私钥。
也可以通过将其设置为数组来指定多个私钥。例如,如果使用默认私钥来引导机器,但稍后用更安全的密钥替换它,则这很有用。
config.ssh.keys_only
只使用 Vagrant 提供的 SSH 私钥(不使用任何存储在 ssh 代理的私钥)。默认是 true。
config.ssh.verify_host_key
执行严格的主机密钥验证。默认值是 false。
config.ssh.paranoid
执行严格的主机密钥验证。默认值是 false。
弃用 config.ssh.paranoid 选项已弃用,将在未来版本中删除。请改用 config.ssh.verify_host_key 选项。
config.ssh.forward_agent
如果为 true,则通过 SSH 连接进行代理转发。默认为 false。
config.ssh.forward_x11
如果为 true,则启用通过 SSH 连接进行的 X11 转发。默认为 false。
config.ssh.forward_env
要转发给客户机的主机环境变量数组。如果你熟悉 OpenSSH,会发现这对应于 SendEnv 参数。
config.ssh.forward_env = ["CUSTOM_VAR"]
config.ssh.insert_key
如果为 true,Vagrant 会自动插入一个用于 SSH 的密钥对,如果检测到机器内部的 Vagrant 默认不安全密钥,则替换。默认情况下是 true。
如果尚未使用私钥进行身份验证,或者依赖于默认的不安全密钥,该设置才会起作用。如果你不需要关心项目中的安全性,并且希望继续使用默认的不安全密钥,请将其设置为 false。
config.ssh.proxy_command
用于执行的命令行命令,用于接收要在 stdin 上发送到 SSH 的数据。这可以用来代理 SSH 连接。命令中的 %h
被主机替换,%p
被替换为端口。
config.ssh.pty
如果为 true,则 pty 将用于 provisioning。默认为 false。
此设置是一项高级功能,除非绝对必要,否则不应启用。它打破了 Vagrant 的一些其他功能,并且仅在绝对必要的情况下才会暴露。如果你可以找到一种不使用 pty 的方法,那就推荐使用。
当启用 pty 时,请注意命令输出不会流式传输到 UI。相反,一旦命令完成,输出将全部传送到 UI。
config.ssh.keep_alive
如果为 true,SSH 将会默认每 5 秒钟发送一个 keep-alive 包来保持连接的有效性。
config.ssh.shell
从 Vagrant 执行 SSH 命令时要使用的 shell。默认是 bash -l
。注意这对运行 vagrant ssh
时获得的 shell 没有影响。此配置选项仅影响在 Vagrant 内部执行命令时使用的 shell。
config.ssh.export_command_template
用于在活动会话中生成导出的环境变量的模板。这在使用不兼容 Bourne 的 shell 如 C shell 时非常有用。该模板支持将两个变量替换为所需的环境变量键和环境变量值:%ENV_KEY%
和 %ENV_VALUE%
。默认模板是:
config.ssh.export_command_template = 'export %ENV_KEY%="%ENV_VALUE%"'
config.ssh.sudo_command
使用 sudo 执行命令时使用的命令。默认为 sudo -E -H %c
。%c
将被正在执行的命令替换。
config.ssh.compression
如果设置为 false,则此设置将不包括 ssh 进入机器时的压缩设置。如果没有设置,它将默认为 true,将使用 ssh 启用 Compression = yes。
config.ssh.dsa_authentication
如果设置为 false,则此设置在 ssh 登录到计算机时将不包括 DSAAuthentication。如果未设置,则默认为 true,将与 ssh 一起使用 DSAAuthentication=yes。
config.ssh.extra_args
This settings value is passed directly into the ssh executable. This allows you to pass any arbitrary commands to do things such as reverse tunneling down into the ssh program. These options can either be single flags set as strings such as “-6” for IPV6 or an array of arguments such as [“-L”, “8008:localhost:80”] for enabling a tunnel from host port 8008 to port 80 on guest.
这个设置值直接传递到 ssh 可执行文件中。这使你可以传递任何命令来执行诸如反向隧道切入 ssh 程序之类的任务。这些选项可以是将单个标志设置为字符串,例如“-6”表示 IPV6,或 [“-L”,“8008:localhost:80”]
这样的参数数组,以启用从主机端口 8008 到客户机的端口 80 的隧道。