我想制作一个可以通过SSH维护多个服务器的脚本。 我想控制authentication/授权的方式,authentication是由网关完成,任何其他访问通过此ssh服务器路由到内部服务没有任何进一步的authentication/授权要求。
因此,如果用户A可以login到server_1例如。 然后,他可以在没有任何其他身份validation的情况下ssh到server_2,并执行他在server_2上允许执行的任何操作(例如closuresmysql,升级并重新启动它,这可以通过一些远程shell脚本完成)。
我试图解决的问题是为涉及数据库和tomcat实例的JavaEE系统提出一个部署脚本。 他们需要被closures并重新产生。 要求是有一个部署脚本尽可能地为开发人员和操作尽可能less的人机交互。
你不应该在这里重新发明轮子,否则你只会长期为自己做更多的工作,并引入新的安全问题。 想到的两个选项是:
ssh-agent
以及允许到最终目的地的代理转发的组合,以便您可以根据您本地解锁的密钥从一个到另一个进行SSH连接。 当你使用ssh的时候,你应该看一下基于ssh key
的authentication和使用ssh-agent 。 如果你使用类似PuTTY和pageant的东西,那么你可以将私钥加载到pageant中,并使用它来validation相关公钥所在的位置。
如果你设法让一切都自动化,那么也可以将密钥的使用限制在某些命令上 。