Linux和其他操作系统提供 ssh密钥生成 命令以生成SSH密钥。SSH密钥由一个称为 公钥 和 私钥 . 这些can可用于自动或基于无密码证书登录到远程SSH服务器。
安装ssh-keygen命令
所有Linux发行版,如Ubuntu、Debian、Mint、Kali CentOS、Fedora、RHEL、SUSE和BSD变体,都以包的形式提供ssh-keygen。可以为apt、apt-get、yum、dnf包管理器安装In,如下所示。
Ubuntu、Debian Mint、Kali和apt:
sudo apt install openssh-client
Ubuntu、Debian Mint、Kali和apt get:
sudo apt-get install openssh-client
CentOS Fedora、RHEL和yum:
sudo yum install openssh-client
CentOS Fedora,RHEL和dnf:
sudo dnf install openssh-client
生成SSH密钥(公钥、私钥)
作为一种安全协议,SSH使用公钥加密技术对主机和用户进行加密和身份验证。由公钥和私钥组成的认证密钥是用 ssh密钥生成 命令,可以生成不同类型的键,如 RSA公司 , 数字减影 , ECDSA公司 , ED25519型 .
如果在没有任何选项和参数的情况下调用ssh keygen,它将通过default创建一个大小为2048位的RSA密钥。
ssh-keygen
输出如下。
Generating public/private rsa key pair.Enter file in which to save the key (/home/ismail/.ssh/id_rsa):/home/ismail/.ssh/id_rsa already exists.Overwrite (y/n)? yEnter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /home/ismail/.ssh/id_rsaYour public key has been saved in /home/ismail/.ssh/id_rsa.pubThe key fingerprint is:SHA256:EMYPpCNIVLAJepvKRSVhKwtLCzSpL43Dftlr44V2uXg [email protected]The key's randomart image is:+---[RSA 3072]----+|o+=.++ | |=o= +oo. | |=ooo .o ||=o=+ . .. ||o*o. S ||=o+ . . ||o+ oo + || . o.++E. || . o++. |+----[SHA256]-----+
如果已经有一个密钥具有相同的文件名,您将被询问是否覆盖。如果键入Y并继续SSH密钥创建,请继续。
相关文章: 如何在Linux中编辑文件?
生成RSA SSH密钥(公钥、私钥)
RSA是最流行的公钥和私钥算法,可以通过ssh-keygen命令生成。RSA密钥可以通过使用 -t型 选项和 rsa公司 参数如下。
ssh-keygen -t rsa
![图片[1]-使用SSH-keygen命令生成SSH密钥-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2020/12/linuxtect_image-16.png)
生成DSA SSH密钥(公钥、私钥)
DSA是另一种流行的加密算法,用于生成SSH密钥。DSA是RSA算法的一个非常快速和可行的替代方案。可以通过使用指定类型来生成DSA密钥 -t型 选项和 数字减影 参数如下。
ssh-keygen -t dsa
生成ECDSA SSH密钥(公钥、私钥)
ssh-keygen -t ecdsa
生成ED25519 SSH密钥(公钥、私钥)
ssh-keygen -t ed25519
设置SSH密钥大小
默认情况下,RSA密钥大小为2048位,DSA密钥大小为1024位。但是密钥大小可以改变,增加密钥大小可以使密钥和通信更加安全。但缺点是,如果数据或带宽很高,性能会较低,但这对于SSH和SSH通信来说不是问题。这个 -b类 选项和位大小可以指定给ssh keygen,如下所示。此密钥大小选项可用于所有算法。
ssh-keygen -t rsa -t 4096ssh-keygen -t dsa -t 1024ssh-keygen -t ecdsa -t 512ssh-keygen -t ed25519 -t 512
将SSH(公共)密钥复制到远程SSH服务器
生成的密钥可以用于无密码或基于密钥的身份验证,这使得SSH连接更简单、更实用。这个 ssh副本id 命令用于将当前用户默认SSH密钥复制到指定的远程SSH服务器。
ssh-copy-id 192.168.10.10
默认情况下,用户名设置为当前用户名,但可以显式指定不同的用户名。这个 @ 符号用于将用户名与远程主机IP地址或主机名分开。
ssh-copy-id [email protected]
或者,可以使用远程系统主机名来复制SSH密钥。但是主机名应该成功地解析为IP地址。
ssh-copy-id [email protected]