[Linux] ssh免密登录

生成密钥

基本命令

ssh-keygen  # 默认生成RSA-3072密钥,连续回车使用默认设置
  • 密钥存储位置:~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub(公钥)

指定密钥算法和长度

ssh-keygen -t ed25519              # Ed25519算法(推荐)
ssh-keygen -t rsa -b 4096          # RSA-4096
ssh-keygen -t ecdsa -b 384         # ECDSA-384

添加注释

ssh-keygen -C "your_comment"       # 公钥尾部会显示注释(通常用邮箱)

发送密钥

手动操作

  1. 查看本地公钥:
    cat ~/.ssh/id_rsa.pub
    
  2. 将公钥内容追加到服务器的 ~/.ssh/authorized_keys 文件:
    echo "公钥内容" >> ~/.ssh/authorized_keys
    

自动发送

ssh-copy-id -i ~/.ssh/id_rsa.pub user@server  # 需提前配置SSH密码登录

免密登录

权限配置(关键步骤!)

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys   # 必须严格限制权限

测试登录

ssh user@server  # 自动使用默认密钥认证

多密钥管理

~/.ssh/config 中指定密钥:

Host myserver
    HostName server_ip
    User username
    IdentityFile ~/.ssh/custom_key

然后使用别名登录:

ssh myserver

关键说明

  1. 密钥安全:私钥权限必须为 600,避免泄露
  2. 算法选择
    • 优先 Ed25519(安全高效)
    • 次选 RSA-4096(兼容性好)
  3. 首次连接:需先通过密码登录服务器配置authorized_keys

按此流程操作即可实现安全的SSH密钥认证。

posted on 2025-04-19 15:58  风惊庭前叶  阅读(37)  评论(0)    收藏  举报