要实现ssh自动登录,主要有三种方法:

1、生成公私钥。

http://blueicer.blog.51cto.com/395686/88175/


2、编写expect脚本。

https://i-blog.csdnimg.cn/blog_migrate/1616705ff6a904ae4986538b2a5f34d1.pngspan76/article/details/11575231


3、用sshpass。

用法:
   sshpass 参数 SSH命令(ssh,sftp,scp等)。
   参数:
       -p password    //将参数password作为密码。
       -f passwordfile //提取文件passwordfile的第一行作为密码。
       -e        //将环境变量SSHPASS作为密码。

   比如说:
       scp abc@192.168.0.5:/home/xxx/test /root   这个命令的作用是将服务器端文件test传到本地文件夹/root下。
       利用sshpass,假设密码为efghi,则可写作:
       ssh -p efghi scp abc@192.168.0.5:/home/xxx/test /root
另外,对于ssh的第一次登陆,会提示:“Are you sure you want to continue connecting (yes/no)”,这时用sshpass会不好使,解决方法:

1.可以在ssh命令后面加上 -o StrictHostKeyChecking=no来解决。比如说上面的命令,就可以写作ssh -p efghi scp abc@192.168.0.5:/home/xxx/test /root -o StrictHostKeyChecking=no。

2.或者写入配置文件:把 StrictHostKeyChecking no 加到/etc/ssh/sshconfig 可以让ssh客户端自动接受新主机的hostkey,不用每次都自己输入yes