1.1. 简化ssh集群管理

sudo vim /etc/hosts

# 给主机编号,简化操作
192.168.0.101 xx-01
192.168.0.105 xx-02
192.168.0.108 xx-03

vim ~/.ssh/config

# 给远程主机设置别名、管理端口,目标->简化书写
# 连接保活
ServerAliveInterval 60

# HOST - 主机别名
# HostName - 域名、IP皆可
# User、Port - 可选
HOST h1
    HostName xx-01
    Port x22xx
HOST h2
    HostName xx-01
    Port x22xx

HOST R1
    HostName xx-01
    User root
    Port x22xx

使用

# 生成公钥、私钥对
ssh-keygen

# 上传公钥到待登陆主机
# MacOS下,需要显式,指出 公钥路径
ssh-copy-id -i ~/.ssh/id_rsa.pub h1 # 当前用户 vs 远程同名用户
ssh-copy-id h2  # Linux - Linux 简化模式 - 当前用户 vs 远程同名用户
ssh-copy-id R1  # Linux - Linux 简化模式 - 当前用户 vs 远程root用户
ssh-copy-id bar@h2  # Linux - Linux 简化模式 - 当前用户 vs 远程bar用户

# ssh协议 操作 简化 对比
# 无须指定IP、Port,基于编号,可以for循环 bash编程(当然推荐ansible)
ssh h2 # 等价于 ssh -p x22xx curuser@xx-02
scp /tmp/1.txt h1:~/ # 等价于 scp -P x22xx /tmp/1.txt curuser@xx-01:~/
rsync -avP /etc/ H2:/tmp/etc/ # 等价于 rsync -avP -p x22xx /etc/ root@xx-02:/tmp/etc/
sftp h1 # ...

# 技巧: ssh中心化操作, 隔山打牛,仅量规避显式登陆主机

# ssh 远程执行简单命令
ssh h1 "ls /tmp; pwd; date"

# ssh user@host bash <本地脚本路径
ssh h1 bash </tmp/1.sh

# ssh 远程执行脚本 并 传递参数
ssh h1 'bash -s' < 脚本文件名 arg1 arg2 ... argN

2. 场景实战

2.1. 远程下载文件

# 通过 h1 机器下载资源(比如境外的) 然后直接 重定向输出到本地
ssh h1 'curl -kL https://npm.taobao.org/mirrors/node/v8.16.0/node-v8.16.0-linux-x64.tar.gz' > /tmp/node-v8.16.0-linux-x64.tar.gz
Copyright © book.bbxyard.com 2014-2019 all right reserved,powered by Gitbook该文件修订时间: 2019-08-06 12:22:59

results matching ""

    No results matching ""