PowerShell自定义profile脚本如何接收命令行输入实现SSH跳板连接
PowerShell 实现固定跳板机SSH跳转的自定义命令
你可以通过自定义函数+别名的方式实现需求,核心是利用PowerShell的参数透传能力,把你调用时输入的所有参数自动拼接到ssh -J box1命令后。
具体实现代码
把以下内容添加到你的PowerShell配置文件中(PowerShell中执行$PROFILE可查看配置文件路径,文件不存在则手动新建即可),保存后重启PowerShell就会永久生效:
# 定义跳转连接函数 function Connect-SSHViaJump { # 固定使用box1作为跳板机,透传所有输入参数给ssh命令 ssh -J box1 @args } # 给函数设置你需要的别名,这里以你要求的"name"为例,可自行修改 Set-Alias -Name name -Value Connect-SSHViaJump
语法说明
- 代码中
@args是PowerShell内置的参数溅出语法,会把你调用别名时输入的所有内容(目标主机地址、ssh可选参数、远程执行命令等)全部原样传递给ssh命令,完全匹配你需要的SSH -J box1 [输入内容]逻辑。 - 如果你的跳板机需要指定用户名、非默认端口,直接把函数里的
box1替换为标准SSH地址格式即可,例如admin@jump-box:2222,SSH的-J参数原生支持该写法。
使用示例
- 基础连接目标主机:直接执行
name 用户名@目标主机地址,实际等效于执行ssh -J box1 用户名@目标主机地址 - 带额外参数连接:例如指定目标主机端口、登录后直接执行远程命令,输入
name 用户名@目标主机地址 -p 2202 "df -h",所有参数都会原样透传,不需要修改函数逻辑。
内容的提问来源于stack exchange,提问作者Wintermute787
相关产品推荐
相关产品推荐

