在Ubuntu系统中使用SSH密钥认证可以提供更安全的远程登录方式。以下是设置和使用SSH密钥认证的步骤:
生成SSH密钥对
-
打开终端。
-
输入以下命令生成一个新的SSH密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
这里,
-t rsa
指定使用RSA算法,-b 4096
指定密钥长度为4096位,-C
是注释,可以填写你的邮箱地址。 -
按照提示操作,选择保存密钥的位置(通常是
~/.ssh/id_rsa
)和设置一个可选的密码短语。
将公钥复制到远程服务器
-
使用
ssh-copy-id
命令将公钥复制到远程服务器:ssh-copy-id user@remote_host
其中,
user
是远程服务器上的用户名,remote_host
是远程服务器的IP地址或域名。 -
如果
ssh-copy-id
命令不可用,你可以手动复制公钥:- 在本地机器上找到公钥文件(通常是
~/.ssh/id_rsa.pub
)。 - 登录到远程服务器,编辑
~/.ssh/authorized_keys
文件:nano ~/.ssh/authorized_keys
- 将公钥内容粘贴到文件中,保存并退出。
- 在本地机器上找到公钥文件(通常是
使用SSH密钥认证登录
-
现在你可以使用SSH密钥认证登录到远程服务器:
ssh user@remote_host
-
如果设置了密码短语,系统会提示你输入密码短语。
配置SSH客户端
你可以在 ~/.ssh/config
文件中配置SSH客户端,以便更方便地使用SSH密钥认证。例如:
Host remote_host HostName remote_host_ip_or_domain User user IdentityFile ~/.ssh/id_rsa
禁用密码登录(可选)
为了提高安全性,你可以禁用SSH密码登录,只允许密钥认证。编辑远程服务器上的 /etc/ssh/sshd_config
文件:
sudo nano /etc/ssh/sshd_config
找到并修改以下行:
PasswordAuthentication no
保存并退出,然后重启SSH服务:
sudo systemctl restart sshd
通过以上步骤,你就可以在Ubuntu系统中使用SSH密钥认证进行安全的远程登录了。