使用ssh执行远程命令

roby on 02月 - 18 - 2009

对linux服务器管理员来说,很常见的一个应用,可以用来方便的控制远程机器,特别是当远程服务器是一个机群的时候,这种批量操作显得更加便捷。在Linux服务器间无需密码的SSH配置一文中已经做了很详细的说明。而我在首次配置时所犯的错误是将客户端和服务端配置颠倒了。正确的交互思路是:客户端机器先生成一对密钥,如采用rsa加密,则可以用命令: ssh-keygen -t rsa
在~/.ssh/的系统隐藏目录下将得到两个密钥文件id_rsa和id_rsa.pub,其中id_rsa.pub为公钥,将此生成的公钥复制到远程主机(需要登陆的远程服务器)~/.ssh/目录下的authorized_keys文件中,若该文件不存在,创建之。
这样便建立了两者之间的对应关系,而我开始错误的操作是将两者搞反了,以为是凭借公钥去访问包含对应私钥的机器,其实不然,正确的理解应该是如上文所说,客户端机器A去访问远程服务器B时,A保有私钥,而B则拿出授权公钥,正好能匹配上,则能实现访问了。
另外还有ssh的版本问题,OpenSSH该文进行了说明,需要开启-t选项,1版的使用ssh-keygen -t rsa1,2版的使用ssh-keygen -t rsa即可。
配置好以后,只需要在ssh ip ‘command’ 用想要执行的命令代替command即可,还需要注意远程执行的权限问题,如一般不能通过web的方式完成需要具有root权限的命令执行。

No Comments for this post

还没有评论。

Leave a comment

Name (required) Comment
Mail (required)
Website