服务器配置ssh免密登录

服务器配置ssh免密登录

#使用ssh-keygen生成私钥和公钥
#参数 -t rsa 表示使用rsa算法进行加密
#参数 -b  指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)。
ssh-keygen -t rsa -b 2048
enter...
#用ssh-copy-id将公钥复制到远程机器中
#ssh-copy-id 将当前服务器公钥写到远程机器的 ~/.ssh/authorized_key文件中
#ssh-copy-id相当于将A服务器公钥(.pub )文件复制到B服务器的.ssh 目录,并 cat id_dsa.pub >> ~/.ssh/authorized_keys的操作
#ssh-copy-id -i /root/.ssh/id_rsa.pub  用户@IP
ssh-copy-id ip

第一次需要密码登录

多节点文件拷贝

#通过rsync进行文件拷贝
#rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快,但不支持远程到远程的拷贝(scp支持)
#如果拷贝目录,要注意路径最后一定不要带有 "/" rsync 对目录路径十分敏感,带有"/"会拷贝目录下的文件而不是目录
#参数说明:a:归档模式,递归并保留文件属性;v:显示同步过程;z:传输文件时进行压缩
rsync -avz fileName ip:/path

脚本:

#!/bin/bash
if [ $# -lt 1 ] ; then echo no params ; exit ; fi

user=`whoami`
# 取出文件(夹)名称
filename=`basename $1`
dir=`dirname $1`
# 进入到文件(夹)所在的路径下
cd $dir
# 获取当前路径的绝对路径
fullpath=`pwd -P`

for ip in $(cat /root/ip.properties) ; do
    tput setaf 2
    echo ================ $ip $@ ================
    tput setaf 9
    rsync -lr $filename $user@$ip:$fullpath
done

多节点执行命令

***脚本:***实际就是通过ssh远程执行linux命令

#!/bin/bash
#sh xcall.sh command
export PATH="/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
export LANG="en_US.UTF-8"

if [ $# -lt 1 ] ; then echo no params ; exit ; fi
#新建一个ip.properties文件,内容是所有节点的ip
for ip in $(cat /root/ip.properties)
do
# $@:传递给脚本或函数的所有参数
# $@:会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。
echo ============== $ip $@ ===============
        ssh $ip  "$@"
done

做一件事,开始时的斗志很重要,但更重要的是坚持不懈的毅力。行百里者半九十,畏惧艰难,凡事都浅尝辄止,就永远无法看到最想要的结果。把开始那一刻的勇气,变成此时此刻的坚持,你才有机会拥抱美好的未来。

你可能感兴趣的:(linux)