在开发中,经常遇到需要 ssh 登录服务器,然后执行一些命令的情况。
但是,很多开发机器都是普通的需要输入密码的方式来登录,每次都要交互式输入密码,没法自动化运行。
为了解决这个问题,同时锻炼一下 Go
的开发能力,就写了一个小工具。
项目地址:https://github.com/daqing/sshc
使用方法在 README 介绍了。
主要支持 3 个命令:
sshc -c $HOME/hosts example run "ls /tmp"
举个例子来说明用途:
先用 bash 创建一个 alias:
alias scloud="sshc -c $HOME/hosts cloud"
然后执行以下命令:
scloud run "iptables-save > /tmp/iptables"
scloud run "sed -i -e '/9200/d' /tmp/iptables"
scloud run "iptables-restore < /tmp/iptables"
以上脚本实现的功能是:取消服务器对 9200 端口的防火墙规则。