SSH 协议

SSH 协议利用公私钥。
首先我们发送请求连接远程主机,主机会将自己的公钥返回。
然后,本地输入密码,通过远程主机的公钥对密码进行加密发送至远程主机。
最后远程主机通过自己的私钥进行解密,然后检查密码是否正确。

那么如果钓鱼wifi 什么的拦截到请求,比如第一步请求连接主机的时候被拦截,然后将自己的公钥返回,就能知道你的密码了。
所以当第一次连接某个远程主机的时候,会将主机的公钥展示出来,以便核对是否是真实想要连接的远程主机。

配置的免密登录的原理:
自己电脑生成公私钥,将公钥放到远程服务器上,下次建立连接的时候远程服务器会返回字符串,自己本地私钥加密之后
如果远程主机能通过公钥解密正常,说明连接被信任,就不用输入密码了。
附免密配置:https://www.linuxidc.com/Linux/2016-09/135533.htm
当然也可以通过ssh对远程主机发送一些命令进行操作。

!/bin/bash
echo "send_file:$1"
#scp -P 20040 "$1" root@218.23.69.10:/root/
for line in `cat "$2"`
do
    #echo $line
    port=`echo $line | cut -d : -f 2`
    host=`echo $line | cut -d : -f 1`
    #echo $port
    #echo $host
    echo "to ===>  $line"
    scp -P $port "$1" root@$host:/root/
    echo "to ===> $line end!"
    #ssh root@$host -p $port "mv test2.txt text223.txt"
    ssh root@$host -p $port "sh deploy-$3-spider.sh ; reboot"
    echo "$line ===> deploy done!"
done
原文地址:https://www.cnblogs.com/dg-blog/p/12753755.html