zoukankan      html  css  js  c++  java
  • SSH远程管理

    SSH远程管理

    ssh功能

    SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输。确保了数据传输安全。那SSH服务主要功能有哪些呢?

    1.提供远程连接服务器的服务

    2.对传输的数据进行加密

    Linux远程链接:ssh协议(加密) telnet(明文)

    windows远程连接:RDP协议 (remote desktop)

    协议 端口
    ssh 22
    telnet 23
    RDP 3389
    http 80
    https 443
    FTP 20 21
    POP3 110
    MySQL 3306
    Rsync 873
    DNS 53

    SSH相关命令

    SSH有客户端与服务端,我们将这种模式称为C/S架构,ssh客户端支持Windows、Linux、Mac等平台。在ssh客户端中包含 ssh|slogin远程登陆、scp远程拷贝、sftp文件传输、ssh-copy-id秘钥分发等应用程序。

    [root@m01 ~]# ssh root@10.0.0.41
    ssh:客户端命令
    root:系统用户名
    @:分割用户和主机
    10.0.0.41:主机的IP(可以是公网也可以是内网)
    -p:指定端口
    

    Xshell连接不上虚拟机

    1.检查网络

    #连谁ping谁
    ping 10.0.0.41
    tcping 10.0.0.41 22
    

    2.检查端口

    telnet 10.0.0.41 22
    tcping 10.0.0.41 22
    

    3.如果可以ping通,端口不通

    #检测sshd服务是否启动
    netstat -lntup|grep 22
    
    #防火墙 selinux
    systemctl stop firewalld
    setenforce 0
    

    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 
    

    结论:
    1.scp通过ssh协议加密方式进行文件或目录拷贝。
    2.scp连接时的用户作为为拷贝文件或目录的权限。
    3.scp支持数据推送和拉取,每次都是全量拷贝,效率较低。


    Sftp远程数据传输命令

    SSH验证方式

    1.用户名密码

    [root@m01 ~]# ssh root@10.0.0.41
    

    2.密钥登陆方式

    默认情况下,通过ssh客户端命令登陆远程服务器,需要提供远程系统上的帐号与密码,但为了降低密码泄露的机率和提高登陆的方便性,建议使用密钥验证方式。

    img

    1.管理机生成密钥对

    [root@m01 ~]# ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:P6UswOccoZSLunZ0gekcQ/gDzhFNkH/+I1WHhtwQro8 root@m01
    The key's randomart image is:
    +---[RSA 2048]----+
    |  oB.   ..       |
    |  = o  o.        |
    | o * oo.o+ .     |
    |  o O+o+o.= .    |
    |   o.**.So ..    |
    |   .+ oB.+ o     |
    |  .. .Eo= =      |
    |  ... . o. .     |
    | ...   . .       |
    +----[SHA256]-----+
    
    [root@m01 ~]# ll .ssh/
    total 8
    -rw------- 1 root root 1679 Aug  8 19:07 id_rsa			#私钥(宝塔镇河妖)
    -rw-r--r-- 1 root root  390 Aug  8 19:07 id_rsa.pub		#公钥(天王盖地虎)
    

    2.管理机推送公钥

    方式一(手动):
    #在要连接的服务器上家目录下创建.ssh目录(用哪个用户连,就创建在哪个家目录下)
    mkdir /root/.ssh
    #授权700
    chmod 700 /root.ssh
    mkdir -m 700 ~/.ssh#一条命令实现
    #在m01上查看公钥文件内容
    cat .ssh/id_rsa.pub 
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDuxyeePaQr6cI6KMINgW7262dDdfgiiwspNjKYEoEj7cfjpMBPBCpqTO4H5+E8U/GcxsFcj2S2fHlRevPMa8vXYqOvX3O0Xp/C9zNMJrNdT+NdpCnDHRpsF4/Egr0xxKju7LPC1qz/Gu6ksx1VqUmcX2RKrQdV2BYi+pqu/2SQYOUUjKpen0zWxnhjuVmZMV+hPHgs4ILbGwwmYxqY+ldvP0guviQ2CeK1JtQIbP2Q5bBSlMwPxr4P303LUkIBsI3pHRoCMnDT0YI9x9JjdRkkUNjeFoTAE4APsTgICd6nzRBfRRf/VOYk5REuub367yxrOZpfNXOcJ6QCRLYQl6Xn root@m01
    
    #创建公钥文件authorized_keys
    vim ~/.ssh/authorized_keys
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDuxyeePaQr6cI6KMINgW7262dDdfgiiwspNjKYEoEj7cfjpMBPBCpqTO4H5+E8U/GcxsFcj2S2fHlRevPMa8vXYqOvX3O0Xp/C9zNMJrNdT+NdpCnDHRpsF4/Egr0xxKju7LPC1qz/Gu6ksx1VqUmcX2RKrQdV2BYi+pqu/2SQYOUUjKpen0zWxnhjuVmZMV+hPHgs4ILbGwwmYxqY+ldvP0guviQ2CeK1JtQIbP2Q5bBSlMwPxr4P303LUkIBsI3pHRoCMnDT0YI9x9JjdRkkUNjeFoTAE4APsTgICd6nzRBfRRf/VOYk5REuub367yxrOZpfNXOcJ6QCRLYQl6Xn root@m01
    
    #授权600
    chmod 600 ~/.ssh/authorized_keys
    
    方式二:
    #使用命令推送公钥
    [root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.7
    

    优化

    SSH作为远程连接服务,通常我们需要考虑到该服务的安全,所以需要对该服务进行安全方面的配置。

    1.更改远程连接登陆的端口

    2.禁止ROOT管理员直接登录

    3.密码认证方式改为密钥认证

    4.重要服务不使用公网IP地址

    5.使用防火墙限制来源IP地址*

    编辑配置文件

    vim /etc/ssh/sshd-config
    ###SSH###
    #Port 6666 #端口
    #PasswordAuthentication no #密码
    #PermitRootLogin no #root
    GSSAPIAuthentication no #
    UseDNS no
    ###END###
    

    免交互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:设置密码提示
    

    简易跳板机

    #!/bin/bash
    
    
    if [ $1 == 'web01' -o $1 == '10.0.0.7' ];then
            ssh root@172.16.1.7
    elif [ $1 == 'backup' -o $1 == '10.0.0.41' ];then
            ssh root@171.16.1.41
    elif [ $1 == 'nfs' -o $1 == '10.0.0.31' ];then
            ssh root@172.16.1.31
    elif [ $1 == 'm01' -o $1 == '10.0.0.61' ];then
            ssh root@172.16.1.61 -p 22
    fi
    ~                                                              
    

    小结

    • 权限 1:禁止root用户登录时,普通用户权限700或者属主属组统一,
    • 公钥,注意存放路径,普通用户家目录下,公钥文件授权600
  • 相关阅读:
    Sql Server--如何自动备份数据
    Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Chinese_PRC_CI_AI" in the equal to operation.
    GET方法和POST方法的区别,Get方法到底可传递的字符串的最大长度是多少?
    Specialization For SCCM
    Fullscreen API:全屏操作
    How to enable remote connections to SQL Server
    Advanced Installer
    ajax跨域请求webservice webconfig配置
    SharePoint Resize app
    Sharepoint 开启App 配置App
  • 原文地址:https://www.cnblogs.com/1naonao/p/11324271.html
Copyright © 2011-2022 走看看