使用ssh-keygen设置ssh无密码登录
-bash-3.2$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/haifeng/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/haifeng/.ssh/id_rsa.
Your public key has been saved in /home/haifeng/.ssh/id_rsa.pub.
过程中会要求输入密码,为了ssh访问过程无须密码,可以直接回车 。
-bash-3.2$ ls /app/.ssh/ #本机当前用户登录后会进入/app目录,.ssh/下有三个文件
id_rsa id_rsa.pub known_hosts
将公钥拷贝至远程机器上,找到对应的.ssh目录
scp id_rsa.pub 用户名@远程机器的IP:/app//.ssh/authorized_keys
若没有authorized_keys,自己创建touch一个
注意:对于要对多个机器进行无密码访问时,需要重复以上步骤,将新机器中生成的 id_rsa.pub 拷贝到远程的服务器上,然后在远程服务器上,进入当前目录下的.ssh目录
cat authorized_keys_新生成的文件 >> authorized_keys
也就是说将新生成的id_rsa.pub文件内容添加到远程服务器的authorized_keys文件中,这样authorized_keys中就存放了多个机器的密钥
在本机上编写操作远程机器的脚本:
ssh -tt 远程机器的IP << EOF
cd 指定目录
./myShell.sh
sleep 5s #可休眠几秒再执行
exit #自动退出
EOF#这个要单独成一行,成对出现,结束
sleep 5s #可休眠几秒再执行
还可以写一些本机上的脚本进行执行
本机脚本编写结束