1. 服务器创建 .ssh 目录(如果不存在)
mkdir -p ~/.ssh
chmod 700 ~/.ssh
• mkdir -p ~/.ssh:如果 .ssh 目录已经存在则不报错,否则自动创建。
• chmod 700 ~/.ssh:设置目录权限为仅自己可读写执行。
2. 在本地主机生成 SSH 密钥
1. 打开本地终端(Windows、macOS 或 Linux 均可),执行以下命令创建一对 SSH 密钥(公钥 & 私钥):
ssh-keygen
• 一路按回车(一般默认存储到 ~/.ssh/id_rsa)
2. 生成成功后,会在 ~/.ssh 目录下得到两个文件:
• id_rsa:私钥文件
• id_rsa.pub:公钥文件
3. 将本地公钥追加到远端的 keys中
本地电脑手动复制公钥:
显示公钥内容:
cat ~/.ssh/id_rsa.pub
将将本地公钥复制,登录到服务器后,把内容echo 方式追加到 ~/.ssh/authorized_keys 文件中:
echo "ssh-rsa AAAAB3NzaC1yc2E…双引号里面是你的公钥…" >> ~/.ssh/authorized_keys
执行以上命令,将你的公钥写入 authorized_keys 文件(如果该文件之前不存在,会自动创建):
验证是否追加成功
cat ~/.ssh/authorized_keys
如果能看到你追加的那行公钥内容,即表示添加成功。
4. 服务器设置 authorized_keys 文件权限
chmod 600 ~/.ssh/authorized_keys
• 仅文件所有者可读写。
5. 在 本地终端使用公钥登录
• 如果你创建的时候是一直回车方式创建的默认名字(如 ~/.ssh/id_rsa)
ssh root@你的服务器IP
• 如果服务器的 SSH 端口不是 22,需要加上 -p <端口号> 参数。
若配置无误,即可使用公钥免密(或带 passphrase)登录。
常见问题
1. 公钥结尾带奇怪的引号
• 若复制粘贴时引用符号出错,可直接把公钥粘贴到 authorized_keys 文件中,不要带中文引号或花样引号。
2. 权限问题
• .ssh 目录权限应该是 700,authorized_keys 文件权限应该是 600,否则 SSH 默认会拒绝使用该公钥。
3. SSH 配置文件
• 若仍无法登录,检查 /etc/ssh/sshd_config 中是否启用了 PubkeyAuthentication yes,以及是否禁用或允许 PasswordAuthentication 等。
• 修改后需要 sudo systemctl restart sshd 或 service ssh restart 以生效。
只要按照上述步骤正确创建 .ssh 和 authorized_keys,并设置好权限,即可顺利完成公钥登录的配置。
有什么问题欢迎留言~
评论前必须登录!
注册