在Ubuntu系统中生成SSH密钥对是一个相对简单的过程。以下是详细的步骤:
首先,打开你的Ubuntu系统的终端。
使用ssh-keygen命令来生成SSH密钥对。默认情况下,它会生成一个RSA密钥对,并将其存储在~/.ssh目录下。
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t rsa:指定生成的密钥类型为RSA。-b 4096:指定密钥的长度为4096位。-C "your_email@example.com":添加一个注释,通常是你的电子邮件地址,这有助于识别密钥。如果你不想使用默认的文件名和位置,可以指定一个不同的文件名和路径。例如:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/my_ssh_key
-f ~/.ssh/my_ssh_key:指定生成的私钥文件名为my_ssh_key,并存储在~/.ssh目录下。为了增加安全性,你可以为私钥设置一个密码短语。这样,每次使用私钥时都需要输入这个密码短语。
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/.ssh/my_ssh_key -m PEM -N "your_passphrase"
-m PEM:指定密钥格式为PEM。-N "your_passphrase":设置密码短语。生成密钥对后,你可以使用以下命令查看公钥和私钥:
ls -l ~/.ssh
你应该会看到类似以下的输出:
-rw------- 1 user user 1679 Mar 1 12:34 my_ssh_key
-rw-r--r-- 1 user user 409 Mar 1 12:34 my_ssh_key.pub
my_ssh_key 是私钥文件。my_ssh_key.pub 是公钥文件。使用ssh-copy-id命令将公钥复制到远程服务器的~/.ssh/authorized_keys文件中。
ssh-copy-id user@remote_host
user 是远程服务器的用户名。remote_host 是远程服务器的地址。系统会提示你输入远程服务器用户的密码,输入正确后,公钥就会被添加到远程服务器的~/.ssh/authorized_keys文件中。
现在,你可以尝试使用SSH连接到远程服务器,看看是否可以免密码登录。
ssh user@remote_host
如果一切设置正确,你应该能够直接登录到远程服务器,而不需要输入密码。
通过以上步骤,你就成功地在Ubuntu系统中生成了SSH密钥对,并将其配置到了远程服务器上。