温馨提示×

ubuntu ssh免密登录怎么做

小樊
42
2026-09-19 04:40:37
栏目: 智能运维

在 Ubuntu 上配置 SSH 免密登录(基于密钥),一般步骤如下:


一、在本地机器生成密钥

在**你自己的电脑(客户端)**上执行:

ssh-keygen -t rsa -b 4096

一路回车即可(默认保存在 ~/.ssh/id_rsa~/.ssh/id_rsa.pub)。

✅ 如果需要不同用途的密钥,可加 -f

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_ubuntu

二、把公钥复制到远程 Ubuntu 服务器

方法 1(推荐):ssh-copy-id

ssh-copy-id user@remote_ip

例如:

ssh-copy-id ubuntu@192.168.1.100

输入一次远程用户密码后,公钥会自动写入:

~/.ssh/authorized_keys

方法 2:手动复制(无 ssh-copy-id 时)

本地执行:

cat ~/.ssh/id_rsa.pub

在远程服务器执行:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

粘贴公钥,然后:

chmod 600 ~/.ssh/authorized_keys

三、测试免密登录

ssh user@remote_ip

如果不再提示输入密码,说明配置成功 ✅


四、常见问题排查

1️⃣ 仍然需要密码

检查权限(非常关键):

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

2️⃣ SSH 服务未允许密钥登录

编辑远程服务器配置:

sudo nano /etc/ssh/sshd_config

确保:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

修改后重启:

sudo systemctl restart ssh

3️⃣ 家目录权限问题

chmod 755 ~

五、可选:禁用密码登录(更安全)

确认免密可用后:

sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
sudo systemctl restart ssh

⚠️ 操作前务必确认密钥可用,否则会无法登录!


如果你需要 多用户 / 多服务器 / 非默认端口 / root 免密 的配置方式,可以告诉我具体场景。

0