V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
iyaozhen
V2EX  ›  问与答

iterm2 怎么添加自定义按钮?

  •  
  •   iyaozhen · 2018-07-30 14:09:29 +08:00 · 6450 次点击
    这是一个创建于 2312 天前的主题,其中的信息可能已经有所发展或是发生改变。
    平常需要登录的服务器比较多,设置为快捷键也记不住呀。有没有能列出机器列表,然后选择或点击按钮就行的(发送 ssh xxx 文本就行)

    我看文档有 Scripts Menu 功能( https://www.iterm2.com/documentation-menu-items.html ),勉强可以满足需求(显示得太平铺了)


    有没有其它好办法
    20 条回复    2018-11-20 17:24:50 +08:00
    yamamotoahua
        1
    yamamotoahua  
       2018-07-30 14:24:43 +08:00
    $ vim /usr/local/bin/ssh-xxx
    yamamotoahua
        2
    yamamotoahua  
       2018-07-30 14:25:38 +08:00
    #!/usr/bin/expect
    spawn ssh [-p port] IP
    expect "*password:"
    send "[password]\r"
    expect "*#"
    interact
    iyaozhen
        3
    iyaozhen  
    OP
       2018-07-30 15:05:28 +08:00
    @yamamotoahua 额,我不是要解决怎么登录的问题。我是机器太多记不住命令(快捷键)
    比如我有 3 个业务,一个业务下面 10 台机器,设置快捷命令或者快捷键不是太方便
    feiyuanqiu
        4
    feiyuanqiu  
       2018-07-30 15:05:37 +08:00
    用 profile


    yamamotoahua
        5
    yamamotoahua  
       2018-07-30 15:25:47 +08:00
    @iyaozhen 是我理解错了。
    @feiyuanqiu 这种 ssh 之后要求输入密码的怎么办?密码是随机生成的,不好记。
    send text at start 里输入,然后手动复制粘贴有点不人性化。
    feiyuanqiu
        6
    feiyuanqiu  
       2018-07-30 15:39:48 +08:00
    @yamamotoahua 公司允许把公钥传到服务器上,然后用私钥登录吗,可以的话,试试 ssh-copy-id [email protected]
    feiyuanqiu
        7
    feiyuanqiu  
       2018-07-30 15:49:35 +08:00
    @feiyuanqiu 或者可以装一个 sshpass 工具
    https://gist.github.com/arunoda/7790979

    然后在 Command 里面填上 sshpass -p 'YourPassword' ssh user@host
    feiyuanqiu
        8
    feiyuanqiu  
       2018-07-30 16:09:00 +08:00   ❤️ 1
    @yamamotoahua 或者可以用 iterm2 的 trigger 功能 https://www.iterm2.com/documentation-triggers.html


    hly9469
        9
    hly9469  
       2018-07-30 16:11:02 +08:00 via iPhone
    ssh copy id 之后,在 zshrc 里做个 alias
    wingoo
        10
    wingoo  
       2018-07-30 16:15:10 +08:00
    shuttle + sshpass
    iyaozhen
        11
    iyaozhen  
    OP
       2018-07-30 16:51:47 +08:00
    @hly9469 问题不在于别名,是机器太多,别名没啥用。最好就是一堆列表在那儿,我要哪个点哪个

    @wingoo shuttle 这个比较符合需求,但是公司有跳板机,稍微有点麻烦,而且不太想脱离 iterm2 去操作
    @feiyuanqiu profile 这个也算是另辟蹊径了,感觉不错
    feiyuanqiu
        12
    feiyuanqiu  
       2018-07-30 17:50:30 +08:00   ❤️ 1
    @iyaozhen profile 就是干这事的

    不同的环境用不同的 profile 配置,我本地和开发环境的 profile 都是暗色主题,连接生产环境的 profile 用亮色主题,再定一个 Badge,防止脑袋昏了搞错环境执行错命令,增加主机的时候复制一份,改一下主机地址就行


    用 profile 的 tag 做分组,实现同一个业务的 profile 都归集在一起,方便使用与管理
    iyaozhen
        13
    iyaozhen  
    OP
       2018-07-30 20:07:54 +08:00
    @feiyuanqiu 感谢,原来是这样用的。之前只用了一个 profile,用作远程服务器环境,配置了 sz、rz 等
    JasonYo
        14
    JasonYo  
       2018-07-30 20:10:24 +08:00 via Android
    zsh,配合 ssh-config 实现补全
    mritd
        15
    mritd  
       2018-07-30 20:16:29 +08:00 via iPhone
    跳板机是个好的应用场景哈,我回去研究研究

    正在撸工具😂
    iyaozhen
        16
    iyaozhen  
    OP
       2018-07-30 20:54:57 +08:00
    @JasonYo 跳板机除了能执行 ssh 啥也干不了

    而且自动补全也不太适合我的场景,比如我把 web 的机器都 web-xxx 命名,但是 xxx 有很多,补全不完,还是要记忆。
    profile+tag 更适合我,无脑点就行
    JasonYo
        17
    JasonYo  
       2018-07-30 22:19:55 +08:00 via Android
    当你发现 web-xxx 如果很多的话,看着也有点累😂
    learnshare
        18
    learnshare  
       2018-07-30 22:24:13 +08:00
    机器太多,或许应该考虑做一个 Web 控制台,安全性做的高一点
    moonsn
        19
    moonsn  
       2018-09-11 16:23:34 +08:00
    内搜一下 relay_auto_login
    mritd
        20
    mritd  
       2018-11-20 17:24:50 +08:00
    我工具写得差不多了

    https://github.com/mritd/mmh
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2739 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:20 · PVG 08:20 · LAX 16:20 · JFK 19:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.