Permission denied (publickey,password)问题的解决办法

[15:29:00.146] Terminal shell path: C:\WINDOWS\System32\cmd.exe
[15:29:01.703] > root@59.110.21.45: Permission denied (publickey,password).

解决:

  • RSA key 登录方法
  • /home/user/ 目录下建立 .ssh/ 文件夹
cd ~/
mkdir .ssh
# 注意.ssh文件夹的权限
chmod 700 .ssh
  • 生成自己的RSA key
cd .ssh
ssh-keygen -t rsa
# 遇到如下输出,可直接回车继续
# Generating public/private rsa key pair.
# Enter file in which to save the key (/home/user/.ssh/id_rsa): 
# Enter passphrase (empty for no passphrase): 
# Enter same passphrase again: 
  • 得到两个文件: 公钥id_rsa.pub,私钥id_rsa
  • 注意id_rsa的权限
chmod 600 id_rsa
chmod 644 id_rsa.pub
  • 把公钥 scp 到服务器server上
scp -r .ssh/id_rsa server:.ssh/
  • 登录服务器, 对公钥授权
ssh user@server
cd .ssh
cat id_rsa.pub >>authorized_keys
  • 完成以上步骤,就可以使用rsa key进行无密码的server ssh登陆了 -
ssh user@server_address
# 如果你的本地用户名和server用户名相同
ssh server_address
  • 如果还需要密码, 那可能是文件权限不对

    • 最好保持本地.ssh和server的.ssh文件权限一致
chmod 700 .ssh/
chmod 600 .ssh/id_rsa
chmod 644 .ssh/authorized_keys
chmod 644 .ssh/id_rsa.pub

但是还是有报错:
Bad permissions. Try removing permissions for user: NT AUTHORITY\Authenticated Users (S-1-5-11) on file D:/.ssh/id_rsa.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for ‘D:\.ssh\id_rsa’ are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key “D:\.ssh\id_rsa”: bad permissions
root@59.110.21.45: Permission denied (publickey,password).

  • 参考一些大佬的教程

腾讯云官网 ssh 连接教程


登录失败

结果登录不上,登录报错截图

img

主要原因就是当前文件给的权限太大了,不够安全,所以终止了连接

Permissions for ‘xxx’ are too open.

It is required that your private key files are NOT accessible by others.

This private key will be ignored.

Load key “xxx”: bad permissions


官网doc

文档里,有一个步骤是 赋予私钥文件仅本人可读权限

教程里使用的是 chmod 命令,该命令在 windows 下实际上是不可用的,会出现如下提示

img

我自己用的一直是 cmder ,虽然拓展了该命令工具,但是实际上是不会生效的,而且也没有反馈

img

实际上在 win10 环境下,应该是使用 icacls 命令设置访问权限,但是对于这一块实在是不熟,网上资料也比较少,有感兴趣的可以看 微软官方文档


最终的解决办法

1.先清空所有权限

密钥文件右键 -》属性 -》 安全 -》 高级 -》 禁用权限 -》从此对象中删除所有已继承的权限 -》 应用

img

设置完之后,当前文件的权限已经全部清除了

img

2.给连接用户设置访问权限

这个时候我们需要添加一个用户,给予访问权限,要与使用 ssh 连接登录的用户一致

右键 -》属性 -》 安全 -》 高级 -》 添加 -》 选择主体 -》 高级 -》 立即查找 -》 选择用户后确认,一路保存即可

img

3.测试连接

这个时候我们再使用 ssh 连接,就会提示连接成功啦

img
参考:https://www.cnblogs.com/chkhk/p/13414823.html

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
SSH登录出现 permission denied(publickey,password)的问题是比较常见的,其中publickeypassword都是指登录验证方式。 在SSH登录时,通常有两种认证方式:密码认证和公钥认证。密码认证是通过输入用户名和密码进行身份验证,而公钥认证则是通过使用密钥对进行身份验证。 当出现permission denied(publickey,password)错误时,可能是以下几种情况: 1.密钥对不匹配:公钥认证需要在客户端和服务器之间设置密钥对,如果密钥对不匹配,则会出现permission denied(publickey)的错误。需要重新生成密钥对,并确保在客户端和服务器上都设置了正确的公钥和私钥。 2.密钥对文件权限不正确:在使用公钥认证时,需要确保在客户端和服务器上的密钥对文件权限正确,否则会出现permission denied(publickey)错误。要确保在客户端上私钥文件的权限为600(只有拥有者可读写),并且在服务器上公钥文件的权限为644(拥有者可读写,其他用户只读)。 3.密码错误:如果使用密码认证登录时出现permission denied(password)的错误,则说明输入的用户名或密码不正确。需要确保输入正确的用户名和密码。 4.账户被禁用或锁定:如果使用密码认证登录时出现permission denied(password)的错误,可能是因为账户被禁用或锁定。需要检查账户状态,确保账户处于活跃状态。 总之,出现permission denied(publickey,password)的错误可能是多种原因造成的,需要进行排查和解决。同时,为了提高SSH登录安全性,建议尽可能使用公钥认证方式,并采取一些安全措施,如使用复杂密码、限制SSH访问IP等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

irrationality

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值