在Ubuntu系统中创建私钥并使用私钥登录服务器,通常涉及以下步骤:
1. 生成SSH密钥对
- 打开终端。
- 使用
ssh-keygen
命令生成密钥对。例如,要生成一个4096位的RSA密钥对,并附加一个注释(通常是你的电子邮件地址),可以运行:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
这将在你的用户目录的.ssh/
子目录下生成id_rsa
(私钥)和id_rsa.pub
(公钥)两个文件。
2. 将公钥复制到服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub username@192.168.1.10
首次执行此命令时,系统会提示你输入服务器的登录密码以进行验证。验证成功后,公钥将被添加到服务器的~/.ssh/authorized_keys
文件中。
- 你可以使用
ssh-copy-id
命令将公钥复制到服务器上。例如,如果服务器的用户名为username
,IP地址为192.168.1.10
,你可以运行:
3. 使用私钥登录服务器:
ssh -i ~/.ssh/id_rsa username@192.168.1.10
如果私钥设置了密码保护,系统会提示你输入私钥的密码。
- 一旦公钥被复制到服务器上,你就可以使用私钥登录到服务器了。使用
ssh
命令并指定私钥文件的位置(如果私钥文件不在默认位置):
4.(可选)配置SSH以使用密钥进行身份验证:
如果你想确保SSH只使用密钥进行身份验证并禁用密码登录,你可以编辑服务器上的SSH配置文件(通常是/etc/ssh/sshd_config
)。找到并修改以下行:
PasswordAuthentication no
PubkeyAuthentication yes
然后重启SSH服务以使更改生效。这取决于你使用的Ubuntu版本和SSH服务器软件,但通常可以使用以下命令之一来重启SSH服务:
sudo service ssh restart
# 或者
sudo systemctl restart sshd
请注意,这些步骤假设你已经在Ubuntu客户端上安装了SSH客户端软件(通常是openssh-client
包),并且在服务器上安装了SSH服务器软件(通常是openssh-server
包)。如果尚未安装这些软件包,请使用适合你的Ubuntu版本的包管理器(如apt
)进行安装。