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

在默认PowerShell的Windows Terminal中配置SSH+fzf命令别名

解决PowerShell中SSH+fzf别名自动执行的问题

问题原因

你之前用Set-Alias直接绑定命令表达式时,PowerShell会立即计算表达式的值,也就是启动终端时就执行ssh $(cat .ssh_known_hosts | fzf),导致fzf自动弹出。Set-Alias适合给已存在的命令/函数起别名,不能直接绑定需要延迟执行的命令逻辑。

正确配置方法

通过定义PowerShell函数来实现,函数只有在你主动调用时才会执行内部命令。

步骤1:编写函数

在$profile文件中添加以下函数(推荐用PowerShell原生的Get-Content替代cat,兼容性更好):

# 定义fzf_ssh函数
function fzf_ssh {
    ssh $(Get-Content .ssh_known_hosts | fzf)
}

# 定义fzf_ssh_tmux函数
function fzf_ssh_tmux {
    ssh $(Get-Content .ssh_known_hosts | fzf) -t tmux a
}

如果.ssh_known_hosts不在当前工作目录,建议使用绝对路径避免找不到文件,比如:

Get-Content "$HOME\.ssh_known_hosts"

步骤2:保存并生效配置

  1. 打开$profile文件:在PowerShell中执行notepad $profile,如果文件不存在,选择创建新文件。
  2. 将上述函数粘贴到文件中,保存退出。
  3. 重启Windows Terminal,或者在当前终端执行. $profile让配置立即生效。

步骤3:使用别名

之后在PowerShell中直接输入fzf_ssh或fzf_ssh_tmux,就会触发fzf选择界面,选中目标后才会执行SSH命令,启动终端时不会自动执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:27:10