• ssh-keygen Linux 免密登录


    一、选择算法和密钥大小

    • rsa - 基于分解大数的难度的旧算法。RSA建议密钥大小至少为2048位,4096位更好。RSA正在变老,并且在保理方面取得了重大进展。可能建议选择不同的算法。在可预见的将来,RSA算法很可能会变得切实可行。所有SSH客户端都支持此算法。
    • dsa - 旧的美国政府数字签名算法。它基于计算离散对数的难度。密钥大小通常与1024一起使用。不再推荐使用其原始形式的DSA。
    • ecdsa - 一种新的数字签名算法,由美国政府使用椭圆曲线标准化。这可能是当前应用程序的一个很好的算法。仅支持三种密钥大小:256,384和521(sic!)位。我们建议总是使用521位,因为密钥仍然很小,可能比较小的密钥更安全(即使它们也应该是安全的)。大多数SSH客户端现在支持此算法。
    • ed25519 - 这是OpenSSH中添加的新算法。客户对它的支持尚未普及。因此,它在通用应用中的使用可能尚不可取。
    # -t 选择算法,-b 选择密钥大小
    
    ssh-keygen -t rsa -b 4096
    ssh-keygen -t dsa
    ssh-keygen -t ecdsa -b 521
    ssh-keygen -t ed25519
    
    # 生成密钥文件,默认在 ~/.ssh 目录生成公钥(.pub 结尾)和私钥,-C 更改公钥文件的注释
    ssh-keygen -t ecdsa -b 521 -C "test-key"
    
    # 复制公钥(可不加后缀名)的内容到免登录机器的 ~/.ssh/authorized_keys 文件中,没有 ~/.ssh/ 目录需要先创建,-p 指定 ssh 端口
    ssh-copy-id -i ~/.ssh/id_ecdsa.pub -p 22 root@localhost

    二、配置免密登录

    # 一直回车,执行完后会生成两个文件id_rsa(私钥),id_rsa.pub(公钥)
    ssh-keygen -t rsa
    
    # 本机免密登录
    ssh-copy-id localhost
    
    # 将公钥拷贝到要免登陆的机器上
    ssh-copy-id -i ~/.ssh/id_rsa.pub remoteIP

    # 测试
    ssh xxx.xxx.xxx.xxx free -m

    三、参数说明

    中文:http://www.jinbuguo.com/openssh/ssh-keygen.html

    usage: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1]
                      [-N new_passphrase] [-C comment] [-f output_keyfile]
           ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
           ssh-keygen -i [-m key_format] [-f input_keyfile]
           ssh-keygen -e [-m key_format] [-f input_keyfile]
           ssh-keygen -y [-f input_keyfile]
           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]
           ssh-keygen -D pkcs11
           ssh-keygen -F hostname [-f known_hosts_file] [-l]
           ssh-keygen -H [-f known_hosts_file]
           ssh-keygen -R hostname [-f known_hosts_file]
           ssh-keygen -r hostname [-f input_keyfile] [-g]
           ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]
           ssh-keygen -T output_file -f input_file [-v] [-a rounds] [-J num_lines]
                      [-j start_line] [-K checkpt] [-W generator]
           ssh-keygen -s ca_key -I certificate_identity [-h] [-n principals]
                      [-O option] [-V validity_interval] [-z serial_number] file ...
           ssh-keygen -L [-f input_keyfile]
           ssh-keygen -A
           ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number]
                      file ...
           ssh-keygen -Q -f krl_file file ...

    https://www.ssh.com/ssh/keygen/

    https://docs.oracle.com/cd/E56344_01/html/E54075/ssh-keygen-1.html

    https://www.liaohuqiu.net/cn/posts/ssh-public-key-auto-login/

  • 相关阅读:
    如何解决无法成功git commit 和git push
    orleans 项目调试注意
    silo 主机 配置
    asp.net core 项目引用包版本问题
    C# async 方法怎么被正确的消费 (新篇)
    C# 虚方法 复习
    C# dynamic 适用场景进一步说明
    [MySQL]
    C# Subject 观察者模式
    C# 协变与逆变
  • 原文地址:https://www.cnblogs.com/jhxxb/p/10573751.html
Copyright © 2020-2023  润新知