linux服务器之间免密登录及一些常见linux操作

1.简介
Linux服务器之间的免密登录,是通过配置SSH密钥对认证方式,实现服务器间无需输入密码即可相互访问的功能。‌这旨在提高服务器管理的便捷性和效率,特别是在需要频繁进行远程操作或自动化脚本执行时‌‌
2. 简便方法
2.1. 什么是SSH?
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
简单说,SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。
2.2. SSH配置多台服务器之间的免密登陆
2.2.1.所有服务器执行
mkdir -p  /root/.ssh
cd /root/.ssh
ssh-keygen -t rsa
chmod 700 /root/.ssh
2.2.2. 将本机的公钥拷贝到其他机器上
输入yes
输入对方服务器密码
192.168.56.100
ssh-copy-id root@192.168.56.101
192.168.56.101
ssh-copy-id root@192.168.56.100
3.让服务器A实现免密登录自己
3.1. 在A服务器中指定的位置(/root/.ssh)生成私钥id_rsa和公钥id_rsa.pub;
在服务器A操作
mkdir -p  /root/.ssh
cd /root/.ssh
ssh-keygen -t rsa
cat id_rsa.pub >> authorized_keys
scp id_rsa.pub root@192.168.56.101:/tmp
ssh root@192.168.56.101
mkdir -p /root/.ssh
cd /root/.ssh
cat /tmp/id_rsa.pub >> authorized_keys
3.2. 在B服务器中指定的位置(/root/.ssh)生成私钥id_rsa和公钥id_rsa.pub;
在服务器B操作
mkdir -p  /root/.ssh
cd /root/.ssh
ssh-keygen -t rsa
cat id_rsa.pub >> authorized_keys
scp id_rsa.pub root@192.168.56.100:/tmp
ssh root@192.168.56.100
mkdir -p /root/.ssh
cd /root/.ssh
cat /tmp/id_rsa.pub >> authorized_keys
4. 最终脚本
配置下面的ip 密码
执行下面的脚本
配置需要
在192.168.56.100 执行下面的脚本后,所有配置的都可以互免密了
#设置要登入的节点ip地址
NOW_IP=“192.168.56.100”
所有服务器的ip
HOST_IP_NODE=(“192.168.56.100” “192.168.56.101” “192.168.56.102”)
所有服务器对应的密码
HOST_PASS_NODE=(“123456” “123456” “123456”)
#!/bin/sh
CURRENT_DIR=$(
   cd "$(dirname "$0")"
   pwd
)
#///////////////////////////////////////////////////////////////////////
# 使用方法
# 配置下面的NOW_IP HOST_IP_NODE  HOST_PASS_NODE
# 执行该脚本,然后登录测试一下即可
#---------------设置ssh免密登入对台设备---------------#
# 设置要登入的节点ip地址
# 当前执行脚本服务器的ip
NOW_IP="192.168.56.100"
# 所有服务器的ip
HOST_IP_NODE=("192.168.56.100" "192.168.56.101" "192.168.56.102")
# 所有服务器对应的密码
HOST_PASS_NODE=("123456" "123456" "123456")
sed -i -e "s/StrictHostKeyChecking/#StrictHostKeyChecking/g" /etc/ssh/ssh_config
#本机ip
native_ip=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'|awk 'NR==1')
echo "【本机ip】$native_ip"
#安装expect软件包
# yum install expect -y
# 下载离线rpm yumdownloader --resolve expect
rpm -Uvh --force --nodeps *.rpm
expect << EOF
set timeout 5
spawn ssh-keygen -t rsa
expect "id_rsa):"
send "\r"
expect "passphrase):"
send "\r"
expect "again:"
send "\r"
expect eof
EOF
copy_id(){
expect << EOF
set timeout 5
spawn ssh-copy-id $1
expect "(yes/no)?"
send "yes\r"
expect "password:"
send "$2\r"
expect eof
EOF
}
#循环遍历
num=${#HOST_IP_NODE[*]}
fun(){
for((i=0;i<$num;i++));
      do
if [ ${HOST_IP_NODE[i]} == $native_ip ]
    then
echo "本机不做操作"
    else
        copy_id root@${HOST_IP_NODE[i]} ${HOST_PASS_NODE[i]}
if [ $NOW_IP == $native_ip ]
then
echo "$native_ip 远程操作 "
echo "ssh ${HOST_IP_NODE[i]} \"rm -rf /root/sshNoPwd\""
ssh ${HOST_IP_NODE[i]} "rm -rf /root/sshNoPwd"
scp -r $CURRENT_DIR root@${HOST_IP_NODE[i]}:/root
ssh ${HOST_IP_NODE[i]} 'bash -s' <<'ENDSSH'
chmod +x /root/sshNoPwd/sshNoPwd.sh
cd /root/sshNoPwd
./sshNoPwd.sh
ENDSSH
fi
    fi
      done
}
fun
5. linux 一些常见的操作
5.1. 查看物理cpu个数
grep ‘physical id’ /proc/cpuinfo | sort -u
5.2. 查看核心数量
grep ‘core id’ /proc/cpuinfo | sort -u | wc -l
5.3. 查看线程数
grep ‘processor’ /proc/cpuinfo | sort -u | wc -l
5.4. 查询某个目录下日志文件 sql超过5000毫秒的记录
grep -r 递归 分层扫描
grep -v 不包含
 grep -r "times:" logs/* | grep -v "SCSDB" | grep -v "NON-TRACK-LOG" | grep -v "{\"ver\"" | grep -v "{\"opid\":" | awk '$8>5000' | grep "times:" | tee -a $PWD/$(date +%F-%H:%M)-over-5000.log
5.5. 清理 buff/cache
# 表示清除pagecache。
echo 1 > /proc/sys/vm/drop_caches
# 表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。
echo 2 > /proc/sys/vm/drop_caches
# 表示清除pagecache和slab分配器中的缓存对象。
echo 3 > /proc/sys/vm/drop_caches
cat 41.214.190.2_2021-05-07_10-04-54.log | grep query | awk -F “]” ‘{print $2}’ | awk -F “[” ‘{print $1}’
5.6. 创建新的yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#清除所有
yum clean all
#重新建立源数据
yum makecache
5.7. 制作离线安装包
yum -y install --downloadonly unoconv --downloaddir=./
#5.8. 如果就是想下载已经安装过过的RPM包,使用命令reinstall
yum -y reinstall --downloadonly unoconv --downloaddir=./
————————————————
版权声明:本文为CSDN博主「liuhm~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36120342/article/details/127648709
阅读剩余
THE END
阿里云ECS特惠活动
阿里云ECS服务器 - 限时特惠活动

云服务器爆款直降90%

新客首单¥68起 | 人人可享99元套餐,续费同价 | u2a指定配置低至2.5折1年,立即选购享更多福利!

新客首单¥68起
人人可享99元套餐
弹性计费
7x24小时售后
立即查看活动详情
阿里云ECS服务器特惠活动