美文网首页
Centos7制作密钥文件登录

Centos7制作密钥文件登录

作者: liurongming | 来源:发表于2021-09-01 13:38 被阅读0次

    ssh命令:连接登录或执行命令

    ssh user@service:port option command #隐式的指定用户名和端口号
    ssh service:port -l user option command #隐式的指定端口号
    ssh service -p port -l user option command
        -b bind_address:绑定本地IP,当本地有多快网卡的时候绑定指定网卡
        -D [bind_address:]port:绑定本地IP和端口号,当本地有多快网卡的时候绑定指定网卡
        -E log_file:指定本地ssh日志文件
        -e escape_char:转义符
        -F configfile:配置文件
        -l login_name:登录的用户名
        -p port:指定目标服务器ssh服务端口号
        -i identity_file:指定本地的秘钥文件
    

    ssh-keygen命令:本地生成秘钥公钥对

    ssh-keygen [-q] [-b bits] [-t type] [-N new_passphrase] [-C comment] [-f output_keyfile]
        -q:安静模式,不显示额外的生成信息
        -b:指定秘钥长度,RSA密钥最小768位,默认2048位。DSA密钥必须是1024位(FIPS 186-2标准的要求)
        -t:指定密钥类型。可用的值:dsa|ecdsa|ed25519|rsa, 默认rsa。
        -N:指定生成秘钥公钥对的密码,不指定会在生成过程中要求输入。
        -C:指定秘钥公钥对的说明信息
        -f:指定生成密钥的目录和文件名,不指定会在生成过程中要求输入。
    

    ssh-keygen命令的其他用法:

    ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]:修改秘钥公钥对的密码
    ssh-keygen -i [-m key_format] [-f input_keyfile]:读取未加密的SSH-2兼容的私钥/公钥文件,用于从多种商业版本的SSH中导入密钥。
    ssh-keygen -e [-m key_format] [-f input_keyfile]:读取OpenSSH的私钥或公钥文件,为多种商业版本的 SSH 输出密钥。
    ssh-keygen -y [-f input_keyfile]:读取OpenSSH专有格式的公钥文件。
    ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]:修改私钥和公钥文件中的注释
    ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]:显示公钥文件的指纹数据。
    ssh-keygen -B [-f input_keyfile]:显示指定的公钥/私钥文件的 bubblebabble 摘要
    ssh-keygen -F hostname [-f known_hosts_file] [-l]:在known_hosts文件中搜索指定的hostname,并列出所有的匹配项。
    ssh-keygen -H [-f known_hosts_file]:对known_hosts文件进行散列计算。把文件中的所有主机名/ip地址替换为相应的散列值。原文件的内容将会添加一个".old"后缀后保存。
    ssh-keygen -R hostname [-f known_hosts_file]:从known_hosts文件中删除所有属于hostname的密钥。
    ssh-keygen -r hostname [-f input_keyfile] [-g]:打印名为hostname的公钥文件的SSHFP指纹资源记录
    

    生成命令

    # 直接确认下一步
    ssh-keygen -t rsa -b 2048 -v 
    # 或者:添加备注
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
    # 指定文件名称:
    ssh-keygen -t rsa -b 4096 -v -f develop
    
    # 查看生成的密钥对:
    ls ~/.ssh/
    
    # 将私钥重命名至id_rsa.pem:
    mv ~/.ssh/id_rsa ~/.ssh/id_rsa.pem
    
    # 修改~/.ssh/目录权限:
    chmod 700 ~/.ssh/
    
    # 将id_rsa.pub文件内容重定向至authorized_keys文件:
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    
    # 修改authorized_keys文件权限:
    chmod 600 ~/.ssh/authorized_keys
    
    # 修改远程服务器配置
    # sudo vim /etc/ssh/sshd_config
    修改完成后如下:
    AuthorizedKeysFile .ssh/authorized_keys
    RSAAuthentication yes
    PubkeyAuthentication yes
    
    # 重启ssh服务:
    systemctl restart sshd.service
    
    # 注意: ssh-copy-id 将key写到远程机器的 ~/ .ssh/authorized_key.文件中
    ssh-copy-id -i ~/.ssh/id_rsa.pub  用户名字@192.168.x.xxx
    # 例如:
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.18.5.128
    

    ssh-copy-id命令

    ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限。

    # 命令详情
    ssh-copy-id [-i [identity_file]] [user@]machine
    
    # 使用案例
    ssh-copy-id user@server 
    ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
    

    问题描述: ssh秘钥对只剩下了私钥,如何用私钥来生成对应的公钥?

    解决方案:用git bash输入 ssh-keygen指令
    ssh-keygen -y -f [private-key-path] > [output-path]
    
    例如:我有一个叫id_rsa的私钥,想用他生成id_rsa.pub公钥,则如下
    ssh-keygen -y -f id_rsa > id_rsa.pub
    

    实际案例

    # 生成密钥对
    ssh-keygen -t rsa -b 4096 -v -f privatekey
    ssh-keygen -y -f privatekey.pem > id_rsa.pub
    # gateway
    ssh-copy-id -i /opt/chores/sshkey/privatekey.pub -p 22 root@10.128.117.99
    # system
    ssh-copy-id -i /opt/chores/sshkey/privatekey.pub -p 22 root@10.128.117.101
    # nservice
    ssh-copy-id -i /opt/chores/sshkey/privatekey.pub -p 22 root@10.128.117.102
    # file
    ssh-copy-id -i /opt/chores/sshkey/privatekey.pub -p 22 root@10.128.117.103
    
    # 免密登录
    ssh -p '22' -i /opt/chores/sshkey/privatekey.pem 'root@10.128.117.99'
    ssh -p '22' -i /opt/chores/sshkey/privatekey.pem 'root@10.128.117.101'
    ssh -p '22' -i /opt/chores/sshkey/privatekey.pem 'root@10.128.117.102'
    ssh -p '22' -i /opt/chores/sshkey/privatekey.pem 'root@10.128.117.103'
    
    # scp 传输
    scp -P 22 -i /opt/chores/sshkey/privatekey.pem ./javajar-1.0.0.jar root@10.128.117.102:/home/sywn/
    
    # 同步文件传输
    rsync -av --delete -e 'ssh -p 22 -i /opt/chores/sshkey/privatekey.pem ' /home/sywn/ root@10.128.117.102:/home/sywn/
    

    相关文章

      网友评论

          本文标题:Centos7制作密钥文件登录

          本文链接:https://www.haomeiwen.com/subject/gbmxwltx.html