如何通过SSH-Key在Linux上实现远程服务器无密码登录设置?
- 内容介绍
- 文章标签
- 相关推荐
本文共计721个文字,预计阅读时间需要3分钟。
可以直接使用 `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 文件会踢掉其他人的免密权限。
本文共计721个文字,预计阅读时间需要3分钟。
可以直接使用 `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 文件会踢掉其他人的免密权限。

