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

如何创建可通过SSH在远程服务器使用的命令别名?

如何创建可通过SSH在远程服务器使用的命令别名?

我之前也纠结过这个问题——总不能每次登录新服务器都手动敲一遍别名设置吧,下面几个亲测有效的方法,你可以按需选:

方法一:修改本地SSH配置,一劳永逸自动加载

这是我现在用得最多的方式,改一次配置,所有远程登录都自动生效。

打开本地的~/.ssh/config文件(如果没有就直接新建一个),加上这段配置:

Host *
  RequestTTY yes
  RemoteCommand alias ll='ls -l'; exec $SHELL -i
  • Host * 表示这个规则对所有远程服务器生效
  • RequestTTY yes 是确保远程能启动交互式shell,不然设置完别名就直接退出了
  • RemoteCommand 会在登录后先执行别名设置,然后用exec $SHELL -i替换当前进程为交互式shell,这样别名就会一直保留到你退出登录

要是偶尔需要跳过别名(比如登录到有特殊配置的服务器),可以用临时参数覆盖:ssh -o RemoteCommand= user@server

方法二:写个SSH包装脚本,灵活自定义别名

如果不想改全局SSH配置,或者要加一堆自定义别名,写个小脚本更灵活。

在本地创建一个叫ssha的脚本(名字随便取,好记就行),内容如下:

#!/bin/bash
# 这里可以加任意多的别名,比如同时加la的配置
CUSTOM_ALIASES="alias ll='ls -l'; alias la='ls -la'"
# 连接服务器时先执行别名,再启动交互式shell
ssh "$@" -- "$CUSTOM_ALIASES; exec \$SHELL -i"

然后给脚本加执行权限:

chmod +x ~/bin/ssha

最后把~/bin加到你的环境变量PATH里(如果还没加,在~/.bashrc或~/.zshrc里加export PATH="$HOME/bin:$PATH",然后执行source ~/.bashrc生效)。

之后登录远程就用ssha user@server代替ssh user@server,脚本里的所有别名都会自动生效,后续要改别名直接编辑脚本就行。

方法三:终端快捷键手动触发,临时救急超方便

要是你习惯用原生ssh命令,或者只是偶尔需要设置别名,用终端的快捷键功能最直接。

举两个常用终端的设置例子:

  • iTerm2(Mac):打开偏好设置→配置文件→选中你的远程会话配置→按键,点+加个快捷键(比如Cmd+Shift+L),动作选发送文本,内容填alias ll='ls -l',记得勾选发送换行
  • Konsole(Linux):打开设置→配置快捷键,点+新建快捷键,触发后执行向活动会话发送文本,内容填alias ll='ls -l'\n

每次登录远程后按一下快捷键,别名就设置好了,完全不用改任何配置文件。

小提醒

  • 这些方法都依赖远程shell支持alias命令,但你已经确认ls -l能运行,那只要是POSIX兼容的shell(bash、sh、zsh等)都没问题,老一点的csh/tcsh语法是alias ll 'ls -l'(把等号换成空格),不过这类shell现在很少见了
  • 要是遇到完全禁止自定义命令的受限服务器,那这些方法可能失效,但这种场景也极少

备注:内容来源于stack exchange,提问作者K1ll3rM

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 12:45:29