ubuntu

Ubuntu SSH密钥认证怎么操作

小樊
46
2025-06-29 06:42:56
栏目: 智能运维

在Ubuntu上设置SSH密钥认证可以提供更安全的登录方式,避免每次登录时都需要输入密码。以下是详细的步骤:

生成SSH密钥对

  1. 打开终端。
  2. 输入以下命令生成密钥对:
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
    • -t rsa:指定使用RSA算法。
    • -b 4096:设置密钥长度为4096位,增加安全性。
    • -C "your_email@example.com":添加一个注释,通常是你的电子邮件地址,便于标识密钥用途。
  3. 按提示操作,系统会提示你输入保存密钥的位置和文件名。默认情况下,密钥会保存在~/.ssh/id_rsa(私钥)和~/.ssh/id_rsa.pub(公钥)。你可以按回车键接受默认位置。
  4. 系统会提示你是否要设置一个密码短语(passphrase)来保护你的私钥。设置密码短语可以增加私钥的安全性,但每次使用私钥时都需要输入密码短语。你可以选择不设置。

将公钥复制到远程服务器

  1. 使用以下命令将公钥复制到远程服务器的~/.ssh/authorized_keys文件中:
    ssh-copy-id user@remote_host
    
    • user:远程服务器上的用户名。
    • remote_host:远程服务器的IP地址或域名。
  2. 运行命令后,系统会提示你输入远程服务器用户的密码。成功后,公钥就会被添加到远程服务器的authorized_keys文件中。

配置SSH服务器

  1. 确保远程服务器的SSH配置允许密钥认证。编辑远程服务器上的/etc/ssh/sshd_config文件:
    sudo nano /etc/ssh/sshd_config
    
  2. 找到并确保以下行没有被注释掉(即没有以#开头):
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    
  3. 保存并退出编辑器,然后重启SSH服务:
    sudo systemctl restart sshd
    

测试SSH密钥认证

  1. 现在,你可以尝试使用SSH密钥认证登录远程服务器:
    ssh user@remote_host
    
  2. 如果一切配置正确,你应该能够无需输入密码即可登录。

禁用密码认证(可选)

为了进一步提高安全性,你可以禁用密码认证。编辑/etc/ssh/sshd_config文件:

sudo nano /etc/ssh/sshd_config

找到并确保以下行被注释掉或设置为no

PasswordAuthentication no

保存并退出编辑器,然后重启SSH服务:

sudo systemctl restart sshd

现在,只有拥有正确密钥的用户才能登录远程服务器。

通过以上步骤,你就可以在Ubuntu上成功设置SSH密钥认证了。

0
看了该问题的人还看了