在Ubuntu系统中创建私钥并使用私钥登录服务器,通常涉及以下步骤:
ssh-keygen命令生成密钥对。例如,要生成一个4096位的RSA密钥对,并附加一个注释(通常是你的电子邮件地址),可以运行:ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 这将在你的用户目录的.ssh/子目录下生成id_rsa(私钥)和id_rsa.pub(公钥)两个文件。
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,你可以运行:ssh -i ~/.ssh/id_rsa username@192.168.1.10
如果私钥设置了密码保护,系统会提示你输入私钥的密码。
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)进行安装。