Ubuntu配置SSH密钥访问

Ubuntu配置SSH密钥访问

jojo100 10 2024-05-23

生成 SSH 密钥对

首先,确保你的 Linux 系统上安装了 OpenSSH 工具。大多数 Linux 发行版都默认安装了这个工具,但如果你的系统没有安装,你可以使用包管理器来安装它。

在 Debian/Ubuntu 上使用 apt 安装 OpenSSH:
sudo apt update
sudo apt install openssh-client openssh-server
在 Red Hat/CentOS 上使用 yum 安装 OpenSSH:
sudo yum install openssh-clients openssh-server

使用 ssh-keygen 生成密钥对

一旦安装了 OpenSSH,你就可以使用 ssh-keygen 命令生成 SSH 密钥对。这个命令的基本用法如下:

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)和公钥文件(id_rsa.pub)。私钥文件存储在本地,而公钥文件则需要被复制到远程服务器上。

私钥是敏感信息,必须妥善保存。公钥则是用于身份验证的公开信息。

密钥的存储和管理

默认情况下,生成的 SSH 密钥对会存储在用户的 ~/.ssh/ 目录下。这个目录包含了两个主要文件:id_rsa(私钥)和 id_rsa.pub(公钥)。这种设置是为了方便用户在使用 SSH 时能够轻松找到和管理密钥。

然而,有时出于安全或组织的考虑,你可能想要将密钥存储在其他位置。这可以通过在生成密钥对时指定存储路径来实现。例如:

ssh-keygen -t rsa -b 4096 -f /path/to/your/keys/my_key -C "your_email@example.com"

这样会将私钥存储为 /path/to/your/keys/my_key,公钥存储为 /path/to/your/keys/my_key.pub

SSH 密钥代理是一个可以管理 SSH 私钥的程序,可以在一次登录后将私钥的解密密码缓存起来,以便后续的 SSH 操作无需再次输入密码。

手动安装公钥

手动安装公钥是一种基本的方法,它涉及将你的公钥内容添加到目标服务器上的 ~/.ssh/authorized_keys 文件中。

  1. 将本地公钥内容复制到剪贴板:

cat ~/.ssh/id_rsa.pub

2.在目标服务器上,使用文本编辑器打开 ~/.ssh/authorized_keys 文件:

  nano ~/.ssh/authorized_keys
  1. 将剪贴板上的公钥内容粘贴到文件末尾,并保存文件。

  2. 回到本地机器,尝试使用密钥身份验证登录:

ssh username@your_server_ip

通过 ssh-copy-id 简化公钥部署

ssh-copy-id 命令可以简化将本地公钥复制到远程服务器的过程。这个命令会自动处理将公钥添加到目标服务器的 ~/.ssh/authorized_keys 文件中

ssh-copy-id username@your_server_ip  #或者@your_server_name

如果不是默认目录,则需要使用如下命令

ssh-copy-id -i(或者 -t 取决于生成密钥是使用了什么参数) /path/to/公钥.pub username@your_server_ip   #或者@your_server_name

确保替换 username 为你的用户名,your_server_ip 为目标服务器的 IP 地址。这个命令将提示你输入用户密码,然后将本地公钥复制到目标服务器上。

通过这两种方法,你可以在目标服务器上配置 SSH 密钥身份验证,提高登录的安全性和便利性。

限制和加固 SSH 访问

禁用密码身份验证

sudo nano /etc/ssh/sshd_config

找到并修改以下行:

PasswordAuthentication no
  1. 保存文件并重新启动 SSH 服务:

sudo service ssh restart

更多配置选项访问原文:https://blog.csdn.net/weixin_43025343/article/details/136548469