在 ssh 配置中传递密码

cdu*_*uma 11 ssh ssh-agent

有什么方法可以使用 传递密码.ssh/config吗?我正在尝试设置一种以特定用户登录服务器的方法,然后在连接时自动切换到root(需要输入密码)。

现在,我有:

Host server
 HostName hostname.server.com
 User not-root
 Port 1234
 RemoteCommand su
Run Code Online (Sandbox Code Playgroud)
  • 我必须使用这些步骤(用户 - > su)
  • 我必须使用这个密钥(带有密码)

Bob*_*Bob 6

一般来说,大多数系统管理员都会进行配置,以便他们的自动化不依赖于密码。

SSH

对于 SSH 身份验证,最简单的方法是创建私钥不受密码保护的密钥对。

如果您需要 SSH 私钥的密码,则将该密钥/密码添加到 ssh-agent(或 Mac OSX 钥匙串)是一次性操作,之后系统将不再提示您输入密码。

如果这不是一个选项,请sshpass在脚本/命令中使用命令行中的密码/密码

在服务器上

同样,最简单/传统的解决方案是避免输入密码。

您的选择取决于您的控制级别

  • 设置 NOPASSWD sudo 策略(最好仅适用于相关命令),该策略将允许您在不输入密码的情况下执行sudo some-command --with args交互式sudo -i登录会话。

  • 设置 root 帐户以进行直接远程 ssh 登录(不是最好的解决方案,但是当您不允许密码身份验证时,仅允许基于密钥的身份验证...)

  • 根据设置,只需将您的帐户添加到“sudo”、“wheel”或“admin”组,您就可以获得完整的管理员权限

当您确实想提交密码时,expect有一个实用程序可以自动执行该操作