如何在Ubuntu中配置SSH密钥
导读:如何在Ubuntu中配置SSH密钥 SSH密钥认证是一种更安全的远程登录方式,可替代传统密码认证,避免密码泄露风险。以下是Ubuntu系统中配置SSH密钥的详细步骤: 1. 生成SSH密钥对 在本地Ubuntu机器上打开终端,运行以下命令生...
如何在Ubuntu中配置SSH密钥
SSH密钥认证是一种更安全的远程登录方式,可替代传统密码认证,避免密码泄露风险。以下是Ubuntu系统中配置SSH密钥的详细步骤:
1. 生成SSH密钥对
在本地Ubuntu机器上打开终端,运行以下命令生成RSA密钥对(推荐4096位长度,安全性更高):
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- 参数说明:
-t rsa:指定密钥类型为RSA(常用且兼容性好);-b 4096:设置密钥长度为4096位(增强安全性);-C "your_email@example.com":添加注释(通常用邮箱标识密钥用途,可选)。
- 后续操作:
系统会提示选择密钥保存路径(默认~/.ssh/id_rsa,直接按Enter使用默认路径);
接着设置私钥密码(Passphrase,可选但推荐,可防止私钥泄露后被直接使用)。 - 验证生成结果:
运行ls -l ~/.ssh/id_rsa*,应看到id_rsa(私钥,需严格保密)和id_rsa.pub(公钥,可共享)两个文件。
2. 将公钥复制到远程服务器
有两种常用方法将公钥添加到远程服务器的authorized_keys文件中(该文件存储允许登录的公钥):
方法1:使用ssh-copy-id(推荐,自动完成)
运行以下命令,将本地公钥复制到远程服务器(替换user为远程服务器用户名,remote_host为服务器IP或域名):
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_host
输入远程服务器用户的密码后,公钥会自动追加到~/.ssh/authorized_keys文件中,无需手动操作。
方法2:手动复制(适用于无ssh-copy-id的情况)
- 步骤1:将本地公钥内容复制到剪贴板:
或直接用文本编辑器打开cat ~/.ssh/id_rsa.pub | xclip -selection clipboard # 需安装xclip(`sudo apt install xclip`)id_rsa.pub,复制内容。 - 步骤2:登录远程服务器:
ssh user@remote_host - 步骤3:在服务器上创建
.ssh目录(若不存在)并设置权限:mkdir -p ~/.ssh chmod 700 ~/.ssh - 步骤4:将公钥追加到
authorized_keys文件中,并设置权限:注意:echo "粘贴的公钥内容" > > ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keysauthorized_keys文件的权限必须为600(仅所有者可读写),否则SSH会拒绝使用该文件。
3. 配置SSH服务器(可选,增强安全性)
编辑远程服务器的SSH配置文件(/etc/ssh/sshd_config),启用公钥认证并禁用密码认证(可选):
sudo nano /etc/ssh/sshd_config
- 修改以下参数(取消注释并设置为
yes):PubkeyAuthentication yes # 启用公钥认证 AuthorizedKeysFile .ssh/authorized_keys # 指定公钥文件路径 - (可选)禁用密码认证(提升安全性,需确保公钥配置正确):
PasswordAuthentication no - 重启SSH服务使配置生效:
若配置错误导致无法登录,可通过控制台(如云服务器的控制台)恢复密码认证。sudo systemctl restart ssh
4. 测试SSH密钥认证
在本地终端运行以下命令,测试是否能通过密钥登录远程服务器(替换user和remote_host):
ssh user@remote_host
- 若未设置私钥密码,直接登录成功;
- 若设置了私钥密码,输入密码后即可登录。
5. 可选:配置SSH客户端简化操作
编辑本地~/.ssh/config文件(若不存在则创建),添加常用服务器的配置,简化ssh命令:
nano ~/.ssh/config
- 添加以下内容(示例):
Host myserver # 自定义服务器别名(如`myserver`) HostName 192.168.1.100 # 服务器IP或域名 User ubuntu # 远程服务器用户名 Port 22 # SSH端口(默认22,若修改过需填写) IdentityFile ~/.ssh/id_rsa # 指定私钥文件路径 - 使用别名登录:
之后可直接用ssh myserver代替ssh user@192.168.1.100,更便捷。
6. 可选:使用SSH Agent管理私钥
若私钥设置了密码,可使用ssh-agent缓存私钥密码,避免每次使用私钥时重复输入:
- 启动ssh-agent:
eval "$(ssh-agent -s)" - 添加私钥到ssh-agent:
输入私钥密码后,该私钥会被缓存(默认直到终端关闭)。ssh-add ~/.ssh/id_rsa - 查看已添加的私钥:
ssh-add -l - 删除私钥:
ssh-add -d ~/.ssh/id_rsa - 自动加载ssh-agent(可选):
将ssh-add ~/.ssh/id_rsa添加到~/.bashrc文件末尾,每次登录时自动加载:echo "ssh-add ~/.ssh/id_rsa" > > ~/.bashrc source ~/.bashrc # 使配置立即生效
通过以上步骤,即可在Ubuntu系统中完成SSH密钥配置,实现安全、便捷的远程登录。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Ubuntu中配置SSH密钥
本文地址: https://pptw.com/jishu/742247.html
