1. linux下设置sudo免密
Ubuntu
sudo su -c "echo \"$USER ALL=(ALL) NOPASSWD:ALL\" > /etc/sudoers.d/$USER"
sudo chown root.root /etc/sudoers.d/$USER
sudo chmod 0664 /etc/sudoers.d/$USER
Sles
sudo sed -i 's/ALL ALL=(ALL) ALL/ALL ALL=(ALL) NOPASSWD:ALL/g' /etc/sudoers
sudo sed -i '/root ALL=(ALL) ALL/agta ALL=(ALL) NOPASSWD:ALL' /etc/sudoers
Rhel
sudo sed -i '/^root/agta ALL=(ALL) NOPASSWD:ALL' /etc/sudoers
sudo sed -i 's/^%wheel.*/%wheel ALL=(ALL) NOPASSWD: ALL/g' /etc/sudoers
2. 配置ssh连接免密
方法一:将公钥放到目标机器的authorized_keys下
# 1. 产生ssh密钥
ssh-keygen -t rsa -b 4096
# 2. copy到目标机器
ssh-copy-id user@ip_address
# 3. 连接目标机器
ssh user@ip_address
方法二:将目标机器私钥放到本地,配置本地的config文件
# 1. 产生ssh密钥 (在目标机器上操作)
ssh-keygen -t rsa -b 4096
# 2. 将公钥放到authorized keys中(在目标机器上操作)
cd ~/.ssh
cat id_rsa.pub > authorized_keys
# 3. 将私钥copy到本地(在目标机器上操作)
scp /home/user/.ssh/id_rsa user@ip_address:~/.ssh/xxx_id_rsa
# 4. 将下面的内容写到~/.ssh/config文件中(在当前机器上操作)
echo "
Host demo
HostName ip_address
IdentityFile ~/.ssh/xxx_id_rsa
Port 22
User user
" >> $HOME/.ssh/config
==============================================================================
### 参数解释
Host:连接机器是的名字
HostName :连接机器的ip地址或者域名
IdentityFile:连接机器的私钥
Port :端口
User :用户
### 1-3步配置好其他机器免密连接只需将密钥下载,然后配置下config
### 可选项配置第一次连接不提示 ECDSA key fingerprint (在当前机器上操作)
echo "
Host *
StrictHostKeyChecking no
" >> ~/.ssh/config
### 可选项使用域名的时候需要将其添加到known_hosts(在当前机器上操作)
ssh-keyscan -p 22 $domain >> $HOME/.ssh/known_hosts
脚本命令
# 静默生成
ssh-keygen -t rsa -b 4096 -N "" -f ~/.ssh/id_rsa
3. 配置mysql免密
# .my.cnf
echo "
[mysql]
user=root
password=Xxx123?
[mysqldump]
user=root
password=Xxx123?
" > ~/.my.cnf