相关命令

吃可爱长大的小学妹 提交于 2019-12-22 10:35:36

gpg

    gpg---OpenPGP encryption and signing tool
        gpg [options] [files]
            -c, --symmetric     仅使用对称加密
            -e, --encrypt   加密数据
            -d, --decrypt   解密数据
            -s, --sign      制作签名
            --clearsign     制作一个清晰文本签名 
            --verify            检查签名
            -o, --output FILE       写出到文件
            --gen-key       生成一个新的密钥对
            -k, --list-keys     列出密钥
            --export    导出密钥
            --import    导入或合并密钥
            -a, --armor     create ascii armored()output
            -r, --recipient USER-ID     为用户id加密
            --delete-keys   移除公钥
            --delete-secret-keys    移除私钥
    来自包:
        rpm  -q --whatprovides gpg
            gnupg2-2.0.14-8.el6.x86_64
    包内文件:
        rpm -ql gnupg2
    示例:
        1.对称加密file 文件
            在A主机上加密file
                gpg -c file
                ls file.gpg
            在B主机上解密file
                gpg -o file -d file.gpg
        2.非对称(公钥)加密file文件
            在hostB 主机上用公钥加密,在hostA 主机上解密。
            在hostA 主机上生成公钥/私钥对
                gpg --gen-key
            在hostA 主机上查看公钥
                gpg --list-keys
            在hostA 主机上导出公钥到wang.pubkey
                gpg -a --export -o wang.pubkey
            从hostA 主机上复制公钥文件到需加密的B 主机上
                scp wang.pubkey hostB:
            在需加密数据的hostB 主机上生成公钥/私钥对
                gpg --gen-key
            在hostB 主机上导入公钥
                gpg --import wang.pubkey
                gpg --list-keys
            用从hostA 主机导入的公钥,加密hostB 主机的文件file, 生成file.gpg
                gpg -e -r wangxiaochun file
                file file.gpg
            复制加密文件到hostA 主机
                scp fstab.gpg hostA:
            在hostA 主机解密文件
                gpg -d file.gpg
                gpg -o file -d file.gpg
            删除公钥和私钥
                gpg --delete-keys wangxiaochun
                gpg --delete-secret-keys wangxiaochun
            

openssl

    openssl - OpenSSL command line tool(openssl命令行工具)
        openssl     command [ command_opts ] [ command_args ]
        openssl     [ list-standard-commands | list-message-digest-commands | list-cipher-commands | list-cipher-algorithms | list-message-digest-algorithms | list-public-key-algorithms]
        openssl     no-XXX [ arbitrary options ]:判断XXX命是否存在
        openssl ?打开command列表
    1)openssl  enc命令
        对称加密
        帮助:man enc
        enc - symmetric(对称的)cipher(密码)routine(程序)
            对称密码命令支持数据使用各种块(填充物)加密或解密。
            openssl  enc     -ciphername 
                [-in filename]:导入文件
                [-out filename]:导出文件
                [-pass arg]:传递密码源
                [-e]:加密
                [-d]:解密
                [-a/-base64]:基于base64的加密
                [-A]:有-a时,base64在一行上处理数据
                [-k  password]:密码源于key
                [-kfile filename] 
                [-K/-iv key/IV]:key/lv 采用十六进制,是下个密码
                [-S salt]:采用十六进制的salt,是下个密码
                [-salt]:使用salt(随机)
                [-nosalt]:不使用salt
                [-z]:在加密或解密前进行压缩或解压缩文本
                [-md]:用于从密码上创建key
                [-p]:打印使用的key和IV
                [-P]:打印使用的key和IV,且马上退出而不进行加密或解密
                [-bufsize number]:为I/O设置buffer 尺寸
        
        加密:
            openssl enc -e -des3 -a -salt -in testfile  -out testfile.cipher
        解密:
            openssl enc -d -des3 -a -salt -in testfile.cipher -out testfile
            
    2)openssl dgst
        单向加密
        帮助:man dgst
        dgst, md5, md4, md2, sha1, sha, mdc2, ripemd160 - message digests(信息摘要)(hash(data)=digest 摘要)
            digist的功能是输出所支持文件或十六进制形式文件的摘要信息,同样可用于数字签名和核查
            openssl dgst    [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1]: [file...]
                [-c]:输出以冒号为分割符的两位数
                [-d]:打印BIO的调试信息
                [-hex]:采用16进制输出(默认输出)
                [-binary]:采用二进制输出
                [-out filename]:输出到文件或标准输出
                [-sign filename]:在文件中使用私钥来签名
                [-keyform arg]:指定key形式来签名
                [-passin arg]:私钥源
                [-verify filename]:使用文件中公钥核查签名
                [-prverify filename]:使用文件中的私钥来核查签名
                [-signature filename]:核查实际的签名
                [-hmac key]:使用key来创建hashed MAC
        
        
        openssl dgst -md5 [-hex 默认] /PATH/SOMEFILE
        openssl dgst -md5 testfile
        md5sum /PATH/TO/SOMEFIL
        
    3)openssl passwd
        生成密码 
        帮助:man sslpasswd
            passwd - compute password hashes(计算密码散列)
                用于计算工作状态下输入密码的散列或是列表的中密码的散列
            openssl passwd  [-crypt]:标准的Unix密码算法(默认)    [password]
                [-1]:基于MD5的密码算法
                [-apr1]:基于md5的密码算法,Apache不同
                [-salt string]:使用所提供的salt
                [-in file]:从文件中读取密码
                [-stdin]:从标准输入中读取密码
                [-noverify]:从终端读取密码时不进行检查
                [-quiet]:不要警告
                [-table]:表格格式输出
                [--reverse]:转换表列
                   
            openssl passwd -1 -salt SALT( 最多8 位)
            openssl passwd -1 –salt centos
        
        4)openssl rand
            生成随机数
            帮助:man sslrand
            rand - generate pseudo-random bytes(生成伪随机码)
                rand命令一旦种植了随机数生成器后就输出虚随机码位的数字
                openssl rand    [-out file]:写到文件    num
                    [-rand file(s)]:从文件中播种下PRNG
                    [-base64]:base64编码输出
                    [-hex]:十六进制编码输出
            
            openssl rand -base64|-hex NUM
                NUM:表示字节数;-hex时,每个字符为十六进制,相当于4 位二进制,出现的字符数为NUM*2
            
        5)openssl rsautl
            公钥加密(非对称加密)
            帮助:man rsautl
            rsautl - RSA utility(RSA功用)
                rsautl 命令使用RSA算法用于签名,检测,加密和解密数据。
                openssl rsautl  [-in file]:输入文件
                    [-out file]:输出到文件
                    [-inkey file]:输入key
                    [-pubin]:输入是个RSA 公钥
                    [-certin]:输入是个含有RSA公钥的证书
                    [-sign]:签名输入数据,输出签名结果,要求有RSA私钥
                    [-verify]:核查输入数据和输出的恢复数据
                    [-encrypt]:使用RSA公钥加密输入数据
                    [-decrypt]:使用RSA私钥加密输入数据
                    [-pkcs] [-ssl] [-raw]
                    [-hexdump]:十六进制输出
                    [-asn1parse]:
            
        
        6)openssl genrsa
            生成私钥
            帮助:man genrsa
            genrsa - generate an RSA private key(产生RSA私钥)
                genrsa 命令生成一个RSA私钥
                openssl genrsa  [-out filename]:输出到文件,若没指定则标准输出
                    [-passout arg]:输出文件密码源
                    [-des][-des3][-idea]:使用加密算法对产生的密钥进行加密
                    [-f4][-3]:使用公共说明,或65537或3,默认65537。
                    [-rand file(s)]:加载文件到随机数生成器中
                    [-engine id]:指定engine
                    [numbits]:指定私钥的bit位,默认位512,必须放到最后指定 
            
            示例:
                生成私钥
                openssl genrsa -out  /PATH/TO/PRIVATEKEY.FILE [numbits]
                chmod +600  privatekey.file
                or
                (umask 077(用于修改权限); openssl genrsa –out test.key –des 2048)(括号用进行子进程,使得umask只影响子进程)
                
            
        7)openssl rsa
            从私钥中提取
            帮助:man rsa
            rsa - RSA key processing tool(RSA密钥处理工具)
                rsa命令处理RSA密钥,可使密钥在各种格式下转换并且进行内容输出
                openssl rsa     [-inform PEM|NET|DER]:输入形式
                    [-outform PEM|NET|DER]:输出形式
                    [-in filename]:输入文件
                    [-passin arg]:输入文件密码源
                    [-out filename]:输出文件
                    [-passout arg]:输出文件密码源
                    [-sgckey]:使用IIS SGC 密钥a.形式
                    [-des][-des3][-idea][-seed]:加密形式
                    [-text]:采用text打印密钥
                    [-noout]:不打印出密钥
                    [-modulus]:打印RSA密钥模数
                    [-check]:检查密钥一致性
                    [-pubin]:默认是从文件读取私钥,使用这个选项就是读取公钥
                    [-pubout]:默认是输出私钥,使用这个选项就输出公钥
                    [-engine id]:指定engine ID
            
            示例:
                从私钥中提取公钥
                    openssl rsa -in  private key file –pubout –out  publickey file
                    openssl rsa –in test.key –pubout –out test.key.pub
                openssl rsa -in key.pem -text -noout
                openssl rsa -in key.pem -outform DER -out keyout.der
                openssl rsa -in key.pem -des3 -out keyout.pem
                openssl rsa -in key.pem -out keyout.pem
        
        8)openssl req
            证书申请
            帮助:man req
            req - PKCS#10 certificate request and certificate generating utility.(证书请求和证书产生功用)
                自签名证书req命令主要是采用PKCS#10格式创建和处理证书请求。它可以为根CA创建自签名证书。
                openssl req     [-inform PEM|DER]:指定输入格式,默认为PEM格式
                    [-outform PEM|DER]:指定输出格式
                    [-in filename]:指定读取请求所需的文件。若未指定则使用标准输入
                    [-passin arg]:输入文件密码源
                    [-out filename]:证书输出到文件
                    [-passout arg]:输出文件密码源
                    [-text]:采用text格式打印出证书请求
                    [-pubkey]:输出公钥
                    [-noout]:阻止输出请求的加密译文
                    [-verify]:核查请求上的签名
                    [-modulus]:打印出包含在请求中的公钥模数值
                    [-new]:生成新证书签署请求
                    [-rand file(s)]:使用包含随机数的文件来产生随机数
                    [-newkey rsa:bits|alg:file]:创建一个新的证书请求和一个私钥
                    [-nodes]:
                    [-key filename]:生成请求是用到的私钥文件
                    [-keyform PEM|DER]:指定私钥文件的格式
                    [-keyout filename]:输出新创建的私钥到文件
                    [-keygen_engine id]:
                    [-[digest]]:指定签名请求时使用的message digest
                    [-config  filename]:指定可供选择的配置文件
                    [-subj arg]:
                    [-multivalue-rdn] 
                    [-x509]:专用于CA生成自签名证书
                    [-days n]:证书的有效期限,默认为30天
                    [-set_serial n]
                    [-asn1-kludge]
                    [-no-asn1-kludge]
                    [-newhdr]
                    [-extensions section]
                    [-reqexts section]
                    [-utf8]  
                    [-nameopt]
                    [-reqopt]
                    [-subject]
                    [-subj arg]
                    [-batch]:不使用交换模式
                    [-verbose]:输出详细操作信息
                    [-engine id]:
            
            示例:
                openssl req -new -x509 –key /etc/pki/CA/private/cakey.pem -days 7300 -out  /etc/pki/CA/cacert.pem
                openssl req -new -key /etc/pki/tls/private/test.key  -days 365 -out /etc/pki/tls/test.csr
                openssl req -new  -key  /etc/pki/CA/private/cakey.pem  -out  /etc/pki/tls/testsubca.csr
                openssl req -in req.pem -text -verify -noout
                openssl genrsa -out key.pem 1024
                openssl req -new -key key.pem -out req.pem
                openssl req -newkey rsa:1024 -keyout key.pem -out req.pem
                openssl req -x509 -newkey rsa:1024 -keyout key.pem -out req.pem
                
                
        9)openssl ca
            帮助:man ca
            ca - sample minimal CA application(CA应用)
                ca命令是个最低等级的CA应用,
                openssl ca  [-verbose]
                    [-config filename]
                    [-name section]
                    [-gencrl]:基于index文件中信息,产生一个CRL
                    [-revoke file]:撤回证书文件
                    [-crl_reason reason]
                    [-crl_hold instruction]
                    [-crl_compromise time]
                    [-crl_CA_compromise time]
                    [-crldays days]
                    [-crlhours hours]
                    [-crlexts section]
                    [-startdate date]
                    [-enddate date]
                    [-days arg]
                    [-md arg]
                    [-policy arg]
                    [-keyfile arg]
                    [-key arg]
                    [-passin arg]
                    [-cert file]
                    [-selfsign]
                    [-in file]:输入PEM编码证书请求
                    [-out file]:输出证书
                    [-notext]
                    [-outdir dir]
                    [-infiles]
                    [-spkac file]
                    [-ss_cert file]
                    [-preserveDN]
                    [-noemailDN]
                    [-batch]
                    [-msie_hack]
                    [-extensions section]
                    [-extfile section]
                    [-engine id]
                    [-subj arg]
                    [-utf8]
                    [-multivalue-rdn]
                    [status serial]:根据编号码显示证书状态
            
            示例:
                openssl ca -in req.pem -out newcert.pem
                openssl ca -in req.pem -extensions v3_ca -out newcert.pem
                openssl ca -gencrl -out crl.pem
                openssl ca -infiles req1.pem req2.pem req3.pem
                openssl ca -spkac spkac.txt
            
            文件:
                /usr/local/ssl/lib/openssl.cnf - master configuration file
                ./demoCA                       - main CA directory
                ./demoCA/cacert.pem            - CA certificate
                ./demoCA/private/cakey.pem     - CA private key
                ./demoCA/serial                - CA serial number file
                ./demoCA/serial.old            - CA serial number backup file
                ./demoCA/index.txt             - CA text database file
                ./demoCA/index.txt.old         - CA text database backup file
                ./demoCA/certs                 - certificate output file
                ./demoCA/.rnd                  - CA random seed information
        
        10)openssl crl
            帮助:man crl
            crl - CRL utility
                crl命令采用DER或者PEM格式处理CRL文件
                openssl crl     [-inform PEM|DER]
                    [-outform PEM|DER]
                    [-text]:以text格式打印输出CRL
                    [-in filename]
                    [-out filename]
                    [-noout]:不输出加密版的CRL
                    [-hash]
                    [-issuer]
                    [-lastupdate]
                    [-nextupdate]
                    [-CAfile file]
                    [-CApath dir] 
        
            示例:
                openssl crl -in crl.pem -outform DER -out crl.der
                openssl crl -in crl.der -text -noout

ssh

    ssh - OpenSSH SSH client (remote login program)
    ssh [user@]host [COMMAND]
        ssh     [-1246AaCfgKkMNnqsTtVvXxYy]     [user@]hostname [command]
            [-b bind_address] 
            [-c cipher_spec] 
            [-D  [bind_address:]port]
            [-e escape_char]
            [-F configfile]
            [-I pkcs11]
            [-i identity_file]
            [-L   [bind_address:]port:host:hostport] 
            [-l login_name]
            [-m mac_spec]
            [-O ctl_cmd]
            [-o option]
            [-p port]
            [-R  [bind_address:]port:host:hostport] 
            [-S ctl_path]
            [-W host:port]
            [-w local_tun[:remote_tun]
    
    ssh [-l user] [user@]host [COMMAND]
        -p port :远程服务器监听的端口
        -b: 指定连接的源IP
        -v: 调试模式
        -C:压缩方式
        -X: 支持x11 转发
        -Y:支持信任x11 转发
            ForwardX11Trusted yes
        -t: 强制伪tty 分配
            ssh -t remoteserver1 ssh remoteserver2

scp

    scp — secure copy (remote file copy program)
            scp     [-12346BCpqrv]  [[user@]host1:]file1 ... [[user@]host2:]file2
                [-c cipher]
                [-F ssh_config]
                [-i identity_file]
                [-l limit]
                [-o ssh_option]
                [-P port]
                [-S program]
        scp [options] SRC... DEST/
        scp [options] [user@]host : /sourcefile /destpath
        scp [options] /sourcefile [user@]host:/destpath
    
    常用选项:
        -C:     压缩数据流
        -r:     递归复制
        -p:     保持原文件的属性信息
        -q:     静默模式
        -P PORT:    指明remote host 的监听的端口

rsync

    基于ssh 和rsh 服务实现高效率的远程系统之间复制文件
    使用安全的shell 连接做为传输方式
    比scp 更快,只复制不同的文件
    rsync - a fast, versatile(通用的), remote and local   file-copying tool
        Local:  
            rsync [OPTION...] SRC... [DEST]
        Access via remote shell:
             Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
             Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
        Access via rsync daemon:
             Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
                   rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
             Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
                   rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
        
        rsync –av /etc server1:/tmp  复制目录和目录下文件
        rsync –av /etc/ server1:/tmp  只复制目录下文件
    选项:
        -n      模拟复制过程
        -v      显示详细过程
        -r      递归复制目录树
        -p      保留权限
        -t      保留时间戳
        -g      保留组信息
        -o      保留所有者信息
        -l  将软链接文件本身进行复制(默认)
        -L      将软链接文件指向的文件复制
        -a      存档,相当于–rlptgoD ,但不保留ACL (-A )和SELinux 属性(-X)

sftp

    交互式文件传输工具
    用法和传统的ftp 工具相似
    利用ssh服务实现安全的文件上传和下载
    sftp — secure file transfer program
        sftp    [-1246aCfpqrv] [-B buffer_size] [-b batchfile] [-c cipher] [-D sftp_server_path] [-F ssh_config][-i identity_file] [-l limit] [-o ssh_option] [-P port] [-R num_requests] [-S program][-s subsystem | sftp_server] host
        sftp    [user@]host[:file ...]
        sftp    [user@]host[:dir[/]]
        sftp    -b batchfile [user@]host
    使用ls cd mkdir rmdir pwd get put 等指令, 可用?或help获取帮助信息
        sftp [user@]host
        sftp> help

Pssh、pslurp、pscp.pssh工具

    /usr/bin/pnuke
    /usr/bin/prsync
    /usr/bin/pscp.pssh
    /usr/bin/pslurp
    /usr/bin/pssh
    pssh — parallel ssh program
         pssh   [-I] [-vAiIP][-h hosts_file] [-H [user@]host[:port]] [-l user] [-p par] [-o outdir] [-e errdir] [-t timeout][-O options] [-x args] [-X arg] command ...
        pssh是一个python 编写可以在多台服务器上执行命令的工具,也可实现文件复制
        pssh [OPTIONS] command [...]
            --version : 查看版本
            -h :    主机文件列表,内容格式”[user@]host[:port]”
            -H :    主机字符串,内容格式”[user@]host[:port]”
            -l :    登录使用的用户名
            -p :    并发的线程数 【 可选 】
            -o :    输出的文件目录 【 可选 】
            -e :    错误输入文件 【 可选 】
            -t :    TIMEOUT 超时时间设置,0 无限制 【 可选 】
            -O :    SSH 的选项
            -v :    详细模式
            -A :    手动输入密码模式
            -x :    额外的命令行参数使用空白符号,引号,反斜线处理
            -X :    额外的命令行参数,单个参数模式,同-x
            -i :    每个服务器内部处理信息输出
            -P   :  打印出服务器返回信息
        
    pslurp:复制远程文件到本地
        pslurp is a program for copying files in parallel from a number of hosts.
    pscp.pssh:复制本地文件到远程主机
        pscp.pssh is a program for copying files in parallel to a number of hosts
    prsync:复制本地文件到远程主机
        prsync is a program for copying files in parallel to a number of hosts.
    pnuke:远程关闭进程
        pnuke is a program for killing processes in parallel on a number of hosts
        pslurp [OPTIONS] remote local
            pslurp -h hosts.txt -L /tmp/outdir -l irb2  /home/irb2/foo.txt foo.txt
        pscp.pssh [OPTIONS] local remote
            pscp -h hosts.txt -l irb2 foo.txt /home/irb2/foo.txt
        prsync [OPTIONS] local remote
            prsync -r -h hosts.txt -l irb2 foo /home/irb2/foo
        pnuke [OPTIONS] pattern
            pnuke -h hosts.txt -l irb2 java
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!