您的位置:

SSH生成密钥

1. SSH简介

Secure Shell(简称SSH)是一种基于加密技术进行安全网络通信的协议。

SSH协议的作用是在不安全的网络中,为用户提供一个安全的传输数据的通道,同时也可以实现远程登录、文件传输等功能。

为了保证安全性,在使用SSH协议进行通信时,需要进行身份验证,而此时就需要用到SSH密钥。

2. SSH密钥简介

SSH密钥是SSH协议中用来进行身份验证的一种方式,它采用公钥-私钥机制实现用户身份验证。

简单来说,SSH密钥生成过程中产生了一对公钥和私钥,其中公钥可以给任何人使用,而私钥只有用户自己拥有,私钥和公钥是一一对应的。

需要注意的是,生成SSH密钥时需要选择加密算法,越高的加密算法越安全,同时也需要考虑到性能问题。

3. 生成SSH密钥

在Linux和MacOS操作系统中,使用SSH密钥是非常方便的。下面我们将从以下几个方面来详细介绍如何生成SSH密钥。

3.1 生成RSA密钥

$ ssh-keygen -t rsa

输入以上命令后,系统会提示你输入保存密钥的文件名和密码等信息。

默认情况下,密钥文件保存在~/.ssh/id_rsa和~/.ssh/id_rsa.pub,密码可以为空。

3.2 生成DSA密钥

$ ssh-keygen -t dsa

输入以上命令后,系统会提示你输入保存密钥的文件名和密码等信息。

默认情况下,密钥文件保存在~/.ssh/id_dsa和~/.ssh/id_dsa.pub,密码可以为空。

3.3 生成ECDSA密钥

$ ssh-keygen -t ecdsa

输入以上命令后,系统会提示你输入保存密钥的文件名和密码等信息。

默认情况下,密钥文件保存在~/.ssh/id_ecdsa和~/.ssh/id_ecdsa.pub,密码可以为空。

3.4 生成ED25519密钥

$ ssh-keygen -t ed25519

输入以上命令后,系统会提示你输入保存密钥的文件名和密码等信息。

默认情况下,密钥文件保存在~/.ssh/id_ed25519和~/.ssh/id_ed25519.pub,密码可以为空。

4. 使用SSH密钥

在SSH密钥生成之后,我们需要将公钥部分添加到目标主机的授权文件中。下面我们将以Linux系统为例,介绍如何将SSH密钥添加到目标主机的授权文件中。

4.1 Linux系统中添加SSH公钥

我们以将本地公钥添加到远程主机的授权文件中为例,假设本地公钥文件名为id_rsa.pub,远程主机IP为192.168.1.10。

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

输入以上命令后,系统会提示你输入目标主机的密码。

在输入密码之后,系统就会将本地公钥添加到目标主机的授权文件中。

4.2 删除SSH密钥

如果不再需要使用SSH密钥,我们可以将密钥文件删除。

在删除密钥文件之前,需要先将公钥部分从目标主机的授权文件中删除,否则会导致无法连接到目标主机。

$ ssh-add -D
$ rm ~/.ssh/id_rsa
$ rm ~/.ssh/id_rsa.pub

4.3 查看SSH密钥

有时我们需要查看已经生成的SSH密钥,可以使用下面的命令查看:

$ cat ~/.ssh/id_rsa.pub

5. 总结

本文主要介绍了SSH密钥的生成、使用及删除等操作,同时也简单介绍了SSH协议的原理和运作方式。

使用SSH密钥可以大大提高安全性,并方便地实现远程登录、文件传输等功能,是一种非常实用的技术。