分类: LINUX
2009-03-09 16:07:01
通常,我们用ssh username@IP 来远程连接另外一台LINUX主机,然后执行命令。可是如果想以非交互方式远程执行命令时,用SSH该怎么做?
正确的交互思路是: 客户端机器先生成一对密钥,如采用rsa加密,则可以用命令: ssh-keygen -t rsa;在~/.ssh/的系统隐藏目录下将得到两个密钥文件id_rsa和id_rsa.pub,其中id_rsa.pub为公钥,将此生成的公钥复制到远程主机(需要登陆的远程服务器)~/.ssh/目录下的authorized_keys文件中,若该文件不存在,创建之。
这样便建立了两者之间的对应关系,客户端机器A去访问远程服务器B时,A保有私钥,而B则拿出授权公钥,正好能匹配上,则能实现访问了。
另外还有ssh的版本问题: 该文进行了说明,需要开启-t选项,1版的使用ssh-keygen -t rsa1,2版的使用ssh-keygen -t rsa即可。
配置好以后,只需要在ssh ip ‘command’ 用想要执行的命令代替command即可,还需要注意远程执行的权限问题,如一般不能通过web的方式完成需要具有root权限的命令执行。