You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

禁用SSH密钥场景下,如何用~/.ssh/config实现密码重放免两次输密?

SSH密码重放配置方案(适配堡垒机跳转场景)

前置要求

首先得安装sshpass工具——SSH本身不支持密码重放,依赖这个工具处理密码传递:

  • Debian/Ubuntu系:sudo apt install sshpass
  • RHEL/CentOS系:sudo yum install sshpass

~/.ssh/config 完整配置

将以下内容写入~/.ssh/config,替换对应参数即可:

# 堡垒机基础配置
Host bastion
  HostName bastion.example.com
  User acme
  PasswordAuthentication yes
  PubkeyAuthentication no  # 强制禁用密钥对,符合POC要求

# 目标主机跳转+密码重放配置
Host machine
  HostName machine.example.com
  User acme
  PasswordAuthentication yes
  PubkeyAuthentication no
  # 通过堡垒机建立隧道,用sshpass将密码传递给堡垒机的SSH连接
  ProxyCommand sshpass -p "$SSH_PASSWORD" ssh -W %h:%p bastion
  # 保留自定义命令传递能力,%command%会替换为执行ssh时传入的命令
  RemoteCommand %command%

使用步骤

1. 自动登录目标主机(跳过两次密码输入)

先临时设置环境变量存储密码(避免明文写入配置文件):

export SSH_PASSWORD="你的90天过期密码"

随后直接执行命令登录:

ssh machine

此时会自动用环境变量中的密码先连接堡垒机,再跳转至目标主机,全程无需手动输入密码。

2. 向目标主机传递命令/脚本执行

比如要在目标机上执行df -h查看磁盘使用情况:

export SSH_PASSWORD="你的90天过期密码"
ssh machine df -h

传递本地脚本到目标机执行的方式:

export SSH_PASSWORD="你的90天过期密码"
cat your_local_script.sh | ssh machine bash

关键说明

  • 环境变量SSH_PASSWORD仅在当前终端会话有效,退出后自动失效,比写入配置文件更安全
  • 完全符合POC限制:禁用SSH密钥对、使用过期密码、实现密码重放、支持命令/脚本传递
  • 若系统限制使用sshpass,可改用expect脚本替代,但sshpass是最轻量化的实现方案

内容的提问来源于stack exchange,提问作者Hare Krshn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 17:57:18