日期:2014-05-16  浏览次数:20656 次

linux 批处理命令 ssh远程登录 获取资源
用ssh远程登录后只想一个脚本文件获取数据,需要输入命令才行。
比如: ssh 192.100.1.18 
就会提示你输入密码 : 此时输入密码,1234
接在执行这台机子上的脚本。 sh /root/new1/sh.sh 
现在我要把这个过程写在一个脚本文件run.sh里,然后在本机执行这个 run.sh,请问这个run.sh 该怎么写?

------解决方案--------------------
ssh支持执行远程命令,你可以直接这样执行:
ssh user@192.100.1.18 sh /root/new1/sh.sh
其中user是登录到192.100.1.18的用户名。
------解决方案--------------------
用公钥登录,省去手工输入密码这一步骤好了。
用ssh-keygen命令生成本机的密钥对,用ssh-copy-id命令把本机公钥传到远程主机,这样以后便可以公钥登录了,不用手工输入密码。
------解决方案--------------------
貌似可以用expect。不太懂expect,纯帮顶。
------解决方案--------------------
1、客户端产生公钥,执型下面命令,按两次【Enter】,产生公钥id_rsa.pub
ssh-keygen -f id_rsa -t rsa
2、上传公钥文件到服务器
scp id_rsa.pub root@xxx.xxx.xxx.xxx:/root/.ssh/authorized_keys
3、保存私钥
cp id_rsa ~.ssh

如果成功,则ssh到服务器不询问密码
要使本地在shell脚本命令在远程运行,使用如下
ssh root@xxx.xxx.xxx.xxx 'ls -l /root'
在shell脚本中也一样,注意这时执行的时远端服务器的命令,也可换成脚本(最好加绝对路径)