一、问题描述
在用Linux终端使用ssh user@server_ip来连接到远程服务器时,出现Permission denied (publickey).提示.
二、问题分析
scp也是利用的ssh。ssh的连接有几个检查点。这里的~/说的是用户b相关的,即/home/b
。
- 用户a的公钥(
~/.ssh/id_rsa.pub
)应该保存在远程服务端(B)的已认证的秘钥文件内(~/.ssh/authorized_keys
) - 远程服务器(B)
~/.ssh
文件夹权限和~/.ssh/authorized_keys
的文件权限
三、问题解决
# 登陆的公钥
YOUR_USER_RSA_PUB="ssh-rsa ......"
mkdir -m 700 ~/.ssh
echo $YOUR_USER_RSA_PUB >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
四、补充
- 整体解决问题的时候,参考了https://www.jianshu.com/p/14027e35b900 和 https://zhuanlan.zhihu.com/p/241341815。
- 还可以查
ssh-copy-id
命令来配置,我找到了 https://blog.youkuaiyun.com/liukuan73/article/details/78090244
和 https://cloud.tencent.com/developer/article/1872690 。 - 生成公钥和私钥查
ssh-keygen
。