• ssh scp


    SSH

    ssh远程登录服务器

    ssh -p22 root@10.0.0.61
    
    -p指定连接远程主机端口,默认22端口可省略
    -C:请求压缩所有数据
    -f:后台执
    -i:指定身份文件行ssh指令
    -q:静默模式
    
    # root@remotehost
    # "@"前面为用户名,如果用当前用户连接,可以不指定用户
    # "@"后面为要连接的服务器的IP
    

    SCP

    scp复制数据至远程主机命令(全量复制)

    # -P 指定端口,默认22端口可不写
    # -r 表示递归拷贝目录
    # -p 表示在拷贝文件前后保持文件或目录属性不变
    # -l 限制传输使用带宽(默认kb)
    
    #推:将本地/tmp/oldboy推送至远端服务器10.0.0.61的/tmp目录,使用对端的root用户
    [root@m01 ~]# scp -P22 -rp /tmp/oldboy oldboy@10.0.0.61:/tmp
    
    #拉:将远程10.0.0.61服务器/tmp/oldboy文件拉取到本地/opt/目录下
    [root@m01 ~]# scp -P22 -rp root@10.0.0.61:/tmp/oldboy /opt/
    
    #限速
    [root@m01 ~]# scp /opt/1.txt root@172.16.1.31:/tmp
    root@172.16.1.31 password: 
    test                        100%  656MB  '83.9MB/s'   00:07 
    #限速为8096kb,换算为MB,要除以 8096/8=1024KB=1MB
    [root@m01 ~]# scp -rp -l 8096  /opt/1.txt root@172.16.1.31:/tmp
    root@172.16.1.31s password: 
    test                        7%   48MB   '1.0MB/s'   09:45 
    

    sftp

    Sftp远程数据传输命令

    #默认可以通过sftp命令连接sftp服务
    sftp root@10.0.0.61
    sftp -oPort=52113 root@10.0.0.61  #sftp的特殊端口连接
    
    # sftp使用get下载文件至于本地服务器
    sftp> get conf.txt /tmp/
    
    # sftp使用put上传本地服务器文件至远程服务器
    sftp> put /root/t1.txt /root/
    

    SSH验证方式

    1.基于账户密码远程登录
    知道服务器的IP端口,账号密码,即可通过ssh客户端命令登陆远程主机
    [root@lib02 ~]# ssh root@10.0.0.5
    root@10.0.0.5's password:
    

    2.基于秘钥远程登录
    ssh密匙认证

    1.
    -t      指定密钥类型
    -C      使用-C指定用户邮箱
    -i      指定公匙文件
    -P:指定端口(注意位置)
    -o stricthostkeychecking=no	#不需要输入yes了
    
    [root@lb01 ~]# ssh-keygen
    [root@lb01 ~]# ll -a
    total 84
    drwx------   2 root root   25 May  3 09:14 .ssh
    [root@lb01 ~]# ll /root/.ssh
    total 12
    -rw------- 1 root root 1766 May  4 09:48 id_rsa
    -rw-r--r-- 1 root root  391 May  4 09:48 id_rsa.pub
    -rw-r--r-- 1 root root 340 May  3 09:17 known_hosts
    [root@lb01 .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.6
    #远程连接不再需要输入密码
    [root@lb01 ~]# ssh root@10.0.0.5
    [root@lb01 ~]# ssh -p22 root@10.0.0.5
    

    免交互expect

    1.安装expect
    [root@m01 ~]# yum install -y expect
    2.编写expect脚本
    #!/usr/bin/expect
    set ip 10.0.0.51
    set pass 123456
    set timeout 30
    spawn ssh root@$ip
    expect {
            "(yes/no)" {send "yes
    "; exp_continue}
            "password:" {send "$pass
    "}
    }
    expect "root@*"  {send "df -h
    "}
    expect "root@*"  {send "exit
    "}
    expect eof
    

    免交互sshpass

    1.安装sshpass
    [root@m01 ~]# yum install -y sshpass
    2.使用sshpass命令
    [root@m01 ~]# sshpass -p 123456 ssh root@10.0.0.51
    
    [option]
    -p:指定密码
    -f:从文件中取密码
    -e:从环境变量中取密码
    -P:设置密码提示
    

    sshpass 的批量推送

    作用:免密免yes连接

    #推送过后,无论使用172.16.1.网段还是10.0.0.网段 跳板机 都可以直接连接
    #!/bin/bash 
    pass='1'
            ip='172.16.1.'
            ip2='10.0.0.'
    
            ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa
    
            for i in  5 6 7 8 9 31 41 51 52 53 54 61 200;
            do
            sshpass -p $pass ssh-copy-id -i /root/.ssh/id_rsa.pub -o stricthostkeychecking=no root@${ip}${i}
            
            sshpass -p $pass ssh-copy-id -i /root/.ssh/id_rsa.pub -o stricthostkeychecking=no root@${ip2}${i}
            
            done
    	    chmod 600 /root/mjh.sh	    
    

    SSH实践

  • 相关阅读:
    从零开始学android -- dialog
    Java学习笔记之equals和Objects.equals
    windows svchost.exe 引起的出现的莫名其妙的窗口失去焦点
    android.util.AndroidRuntimeException Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? com.uethinking.microvideo.manag
    从零开始搭建android框架系列(转)
    js-ES6学习笔记-编程风格(1)
    js-ES6学习笔记-module(4)
    js-ES6学习笔记-module(3)
    js-ES6学习笔记-module(2)
    js-ES6学习笔记-module(1)
  • 原文地址:https://www.cnblogs.com/syy1757528181/p/12825504.html
Copyright © 2020-2023  润新知