SSH

SSH

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

目前,我有:

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

答案1

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

SSH

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

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

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

在服务器上

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

你的选择取决于你的控制水平

  • 设置 NOPASSWD sudo 策略(理想情况下仅针对相关命令),它将允许您执行sudo some-command --with argssudo -i进行交互式登录会话而无需输入密码。

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

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

当你真的想提交密码时,expect自动执行该操作的实用程序

相关内容