ubuntu

Ubuntu如何使用SSH密钥认证

小樊
51
2025-10-26 17:49:54
栏目: 智能运维

Ubuntu使用SSH密钥认证的完整步骤

1. 生成SSH密钥对

在本地Ubuntu机器上生成密钥对(私钥+公钥),是密钥认证的基础。
打开终端,运行以下命令:

ssh-keygen -t ed25519 -C "your_email@example.com"

2. 将公钥上传到远程服务器

将本地生成的公钥(id_ed25519.pubid_rsa.pub)添加到远程服务器的~/.ssh/authorized_keys文件中,实现“钥匙与锁”的匹配。

方法1:使用ssh-copy-id命令(推荐)

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote_host

方法2:手动复制公钥(若ssh-copy-id不可用)

# 1. 复制本地公钥内容到剪贴板
cat ~/.ssh/id_ed25519.pub | xclip -selection clipboard  # 需安装xclip(sudo apt install xclip)
# 或直接打开公钥文件复制内容:cat ~/.ssh/id_ed25519.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_keys  # 关键:限制authorized_keys文件权限

注意authorized_keys文件的权限必须为600(仅所有者可读写),否则SSH会拒绝使用该文件。

3. 配置SSH服务器(可选但推荐)

修改远程服务器的SSH配置文件,启用密钥认证并优化安全性。

sudo nano /etc/ssh/sshd_config

注意:修改配置前建议备份原文件(sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak),避免配置错误导致无法登录。

4. 测试SSH密钥认证

在本地机器上测试是否能通过密钥登录远程服务器:

ssh user@remote_host

5. 优化密钥使用体验(可选)

使用SSH Agent管理私钥

SSH Agent可缓存私钥密码,避免每次使用密钥时重复输入:

# 1. 启动SSH Agent
eval "$(ssh-agent -s)"

# 2. 添加私钥到Agent(输入私钥密码)
ssh-add ~/.ssh/id_ed25519

# 3. 查看已加载的密钥
ssh-add -l

注意:SSH Agent仅在当前终端会话有效,关闭终端后需重新启动。

配置SSH客户端简化命令

编辑本地机器的~/.ssh/config文件(若不存在则创建),添加以下内容:

Host my_server  # 自定义别名(如server1)
    HostName 192.168.1.100  # 远程服务器IP或域名
    User ubuntu  # 远程服务器用户名
    IdentityFile ~/.ssh/id_ed25519  # 私钥文件路径

使用效果
之后可直接通过ssh my_server命令登录,无需输入完整参数。

注意事项

0
看了该问题的人还看了