有没有办法使用 传递密码.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 args
或sudo -i
进行交互式登录会话而无需输入密码。设置 root 帐户以直接进行远程 ssh 登录(不是最好的解决方案,但是当您不允许密码验证时,只允许基于密钥的验证……)
根据设置,只需将您的帐户添加到“sudo”,“wheel”或“admin”组,即可获得完全管理员权限
当你真的想提交密码时,expect
自动执行该操作的实用程序