如何通过SSH-Key在Linux上实现远程服务器无密码登录设置?

2026-04-30 11:151阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计721个文字,预计阅读时间需要3分钟。

如何通过SSH-Key在Linux上实现远程服务器无密码登录设置?

可以直接使用 `ssh-copy-id` 命令,无需手动拼接连接命令。它自动处理目录创建、权限设置和追加逻辑,减少了出错的可能性。

为什么 ssh-copy-id 失败后不能直接改用 cat ... | ssh ... >> authorized_keys

这个管道命令看似等价,但实际会破坏 authorized_keys 文件的末尾换行符,导致第二条公钥写入时粘连在第一行末尾,SSH 拒绝加载整个文件。更隐蔽的问题是:如果目标用户 ~/.ssh 目录不存在,该命令不会创建它,而 ssh-copy-id 会自动执行 mkdir -p ~/.ssh && chmod 700 ~/.ssh。常见错误现象包括登录时提示 Permission denied (publickey),但 sshd -T | grep pubkey 显示配置正常——问题往往就出在这儿。

id_rsa.pub 内容必须逐行追加,不能覆盖 authorized_keys

多人共用一台目标服务器时,直接用 scp 替换整个 authorized_keys 文件会踢掉其他人的免密权限。

阅读全文
标签:Linux

本文共计721个文字,预计阅读时间需要3分钟。

如何通过SSH-Key在Linux上实现远程服务器无密码登录设置?

可以直接使用 `ssh-copy-id` 命令,无需手动拼接连接命令。它自动处理目录创建、权限设置和追加逻辑,减少了出错的可能性。

为什么 ssh-copy-id 失败后不能直接改用 cat ... | ssh ... >> authorized_keys

这个管道命令看似等价,但实际会破坏 authorized_keys 文件的末尾换行符,导致第二条公钥写入时粘连在第一行末尾,SSH 拒绝加载整个文件。更隐蔽的问题是:如果目标用户 ~/.ssh 目录不存在,该命令不会创建它,而 ssh-copy-id 会自动执行 mkdir -p ~/.ssh && chmod 700 ~/.ssh。常见错误现象包括登录时提示 Permission denied (publickey),但 sshd -T | grep pubkey 显示配置正常——问题往往就出在这儿。

id_rsa.pub 内容必须逐行追加,不能覆盖 authorized_keys

多人共用一台目标服务器时,直接用 scp 替换整个 authorized_keys 文件会踢掉其他人的免密权限。

阅读全文
标签:Linux