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

如何在.bashrc中封装SSH跳转命令实现自定义快捷调用?

封装SSH跳转命令的正确方法

推荐用函数实现

直接把目标主机作为ssh -J命令的最终参数即可,这才符合ssh跳转语法的正确用法。在.bashrc里添加:

doot() {
    ssh -J mylogin@host mylogin@"$1"
}

或者用完整的function语法写法:

function doot {
    ssh -J mylogin@host mylogin@"$1"
}

添加后执行source ~/.bashrc使设置生效,之后输入doot host2就会自动执行ssh -J mylogin@host mylogin@host2完成跳转。

你之前写法的问题

  • 函数里用ssh -J mylogin@host && mylogin@"$1"或;的写法完全错误:ssh -J如果不带目标参数,会直接登录代理主机,只有你退出代理主机的shell后才会执行后面的内容,而且mylogin@"$1"根本不是合法命令——你完全误解了ssh -J的作用,它是一次性完成跳转,不需要分两次登录操作。
  • 别名写法alias doot="ssh -J mylogin@host; mylogin@"$1""的问题:bash别名不支持直接使用$1这类位置参数,而且同样犯了命令逻辑错误。

可选:用别名实现(不推荐)

如果非要用别名,可借助参数传递,但可读性和可靠性不如函数:

alias doot='ssh -J mylogin@host mylogin@$1'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:42:19