首页主机资讯如何在Ubuntu中配置SSH密钥

如何在Ubuntu中配置SSH密钥

时间2025-11-04 20:21:05发布访客分类主机资讯浏览1383
导读:如何在Ubuntu中配置SSH密钥 SSH密钥认证是一种更安全的远程登录方式,可替代传统密码认证,避免密码泄露风险。以下是Ubuntu系统中配置SSH密钥的详细步骤: 1. 生成SSH密钥对 在本地Ubuntu机器上打开终端,运行以下命令生...

如何在Ubuntu中配置SSH密钥

SSH密钥认证是一种更安全的远程登录方式,可替代传统密码认证,避免密码泄露风险。以下是Ubuntu系统中配置SSH密钥的详细步骤:

1. 生成SSH密钥对

在本地Ubuntu机器上打开终端,运行以下命令生成RSA密钥对(推荐4096位长度,安全性更高):

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • 参数说明
    • -t rsa:指定密钥类型为RSA(常用且兼容性好);
    • -b 4096:设置密钥长度为4096位(增强安全性);
    • -C "your_email@example.com":添加注释(通常用邮箱标识密钥用途,可选)。
  • 后续操作
    系统会提示选择密钥保存路径(默认~/.ssh/id_rsa,直接按Enter使用默认路径);
    接着设置私钥密码(Passphrase,可选但推荐,可防止私钥泄露后被直接使用)。
  • 验证生成结果
    运行ls -l ~/.ssh/id_rsa*,应看到id_rsa(私钥,需严格保密)和id_rsa.pub(公钥,可共享)两个文件。

2. 将公钥复制到远程服务器

有两种常用方法将公钥添加到远程服务器的authorized_keys文件中(该文件存储允许登录的公钥):

方法1:使用ssh-copy-id(推荐,自动完成)

运行以下命令,将本地公钥复制到远程服务器(替换user为远程服务器用户名,remote_host为服务器IP或域名):

ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_host

输入远程服务器用户的密码后,公钥会自动追加到~/.ssh/authorized_keys文件中,无需手动操作。

方法2:手动复制(适用于无ssh-copy-id的情况)
  • 步骤1:将本地公钥内容复制到剪贴板:
    cat ~/.ssh/id_rsa.pub | xclip -selection clipboard  # 需安装xclip(`sudo apt install xclip`)
    
    或直接用文本编辑器打开id_rsa.pub,复制内容。
  • 步骤2:登录远程服务器:
    ssh user@remote_host
    
  • 步骤3:在服务器上创建.ssh目录(若不存在)并设置权限:
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    
  • 步骤4:将公钥追加到authorized_keys文件中,并设置权限:
    echo "粘贴的公钥内容" >
        >
         ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    
    注意:authorized_keys文件的权限必须为600(仅所有者可读写),否则SSH会拒绝使用该文件。

3. 配置SSH服务器(可选,增强安全性)

编辑远程服务器的SSH配置文件(/etc/ssh/sshd_config),启用公钥认证并禁用密码认证(可选):

sudo nano /etc/ssh/sshd_config
  • 修改以下参数(取消注释并设置为yes):
    PubkeyAuthentication yes      # 启用公钥认证
    AuthorizedKeysFile .ssh/authorized_keys  # 指定公钥文件路径
    
  • (可选)禁用密码认证(提升安全性,需确保公钥配置正确):
    PasswordAuthentication no
    
  • 重启SSH服务使配置生效:
    sudo systemctl restart ssh
    
    若配置错误导致无法登录,可通过控制台(如云服务器的控制台)恢复密码认证。

4. 测试SSH密钥认证

在本地终端运行以下命令,测试是否能通过密钥登录远程服务器(替换userremote_host):

ssh user@remote_host
  • 若未设置私钥密码,直接登录成功;
  • 若设置了私钥密码,输入密码后即可登录。

5. 可选:配置SSH客户端简化操作

编辑本地~/.ssh/config文件(若不存在则创建),添加常用服务器的配置,简化ssh命令:

nano ~/.ssh/config
  • 添加以下内容(示例):
    Host myserver  # 自定义服务器别名(如`myserver`)
        HostName 192.168.1.100  # 服务器IP或域名
        User ubuntu  # 远程服务器用户名
        Port 22  # SSH端口(默认22,若修改过需填写)
        IdentityFile ~/.ssh/id_rsa  # 指定私钥文件路径
    
  • 使用别名登录
    之后可直接用ssh myserver代替ssh user@192.168.1.100,更便捷。

6. 可选:使用SSH Agent管理私钥

若私钥设置了密码,可使用ssh-agent缓存私钥密码,避免每次使用私钥时重复输入:

  • 启动ssh-agent
    eval "$(ssh-agent -s)"
    
  • 添加私钥到ssh-agent
    ssh-add ~/.ssh/id_rsa
    
    输入私钥密码后,该私钥会被缓存(默认直到终端关闭)。
  • 查看已添加的私钥
    ssh-add -l
    
  • 删除私钥
    ssh-add -d ~/.ssh/id_rsa
    
  • 自动加载ssh-agent(可选):
    ssh-add ~/.ssh/id_rsa添加到~/.bashrc文件末尾,每次登录时自动加载:
    echo "ssh-add ~/.ssh/id_rsa" >
        >
         ~/.bashrc
    source ~/.bashrc  # 使配置立即生效
    

通过以上步骤,即可在Ubuntu系统中完成SSH密钥配置,实现安全、便捷的远程登录。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在Ubuntu中配置SSH密钥
本文地址: https://pptw.com/jishu/742247.html
Ubuntu SSH如何生成和使用密钥对 反引号在别名中的使用

游客 回复需填写必要信息