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

如何实现带变量的SSH登录脚本?支持指定服务器子目录

灵活适配多服务器的SSH登录方案(自动跳转指定目录)

我来给你两个实用的方案,完美解决你多客户端多产品的登录需求,不用一个个手动加别名,还能自动进入目标子目录~

方案一:Shell 函数(推荐,无需额外脚本)

直接把这个自定义函数加到你的Shell配置文件里(比如~/.bashrc或者~/.zshrc,取决于你用的是Bash还是Zsh),以后终端里直接敲命令就能用。

函数代码

# 自定义SSH登录函数,用法:sshlogin <product> <clientName>
sshlogin() {
    # 先检查参数是否正确
    if [ $# -ne 2 ]; then
        echo "💡 正确用法:sshlogin <产品名> <客户端名>"
        return 1
    fi

    # 替换成你的固定配置
    local fixed_username="你的固定用户名"
    local fixed_domain="你的固定域名"
    local auto_cd_dir="/path/to/your/target/subdir"  # 要自动进入的子目录

    # 拼接SSH命令,-t参数保证远程Shell保持交互,exec $SHELL避免登录后直接退出
    ssh -t "$fixed_username@$2-$1.$fixed_domain" "cd $auto_cd_dir && exec \$SHELL"
}

使用步骤

  1. 把上面的代码复制到你的~/.bashrc(或~/.zshrc)文件末尾
  2. 保存后,在终端执行source ~/.bashrc(或对应的配置文件)让修改生效
  3. 现在直接输入sshlogin <product> <clientName>就能登录,比如:
    sshlogin web clientXYZ
    
    这会自动帮你登录ssh yourname@clientXYZ-web.yourdomain.com,并且直接进入指定子目录。

方案二:独立可执行脚本(适合团队共享)

如果你不想修改个人Shell配置,或者需要把这个工具共享给团队成员,可以写一个独立脚本:

脚本代码

创建一个名为ssh-login的文件,内容如下:

#!/bin/bash

# 检查输入参数
if [ $# -ne 2 ]; then
    echo "💡 正确用法:ssh-login <产品名> <客户端名>"
    exit 1
fi

# 替换成你的固定配置
fixed_username="你的固定用户名"
fixed_domain="你的固定域名"
auto_cd_dir="/path/to/your/target/subdir"

# 执行SSH登录并自动跳转目录
ssh -t "$fixed_username@$2-$1.$fixed_domain" "cd $auto_cd_dir && exec \$SHELL"

使用步骤

  1. 给脚本添加执行权限:
    chmod +x ssh-login
    
  2. 把脚本放到系统PATH目录里(比如~/bin或者/usr/local/bin),这样任何终端都能直接调用
  3. 使用方式和函数一样:ssh-login <product> <clientName>

额外优化建议

  • 如果不同产品/客户端需要跳转到不同目录,可以在函数/脚本里加个条件判断,比如:
    case $1 in
        web) auto_cd_dir="/var/www/html" ;;
        api) auto_cd_dir="/opt/api/service" ;;
        *) auto_cd_dir="/home/$fixed_username" ;;
    esac
    
  • 可以把固定的用户名、域名做成环境变量,比如在~/.bashrc里export SSH_FIXED_USER="yourname",这样函数里直接用$SSH_FIXED_USER,修改起来更方便。

内容的提问来源于stack exchange,提问作者Christopher Ubøe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 16:15:58