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

[15:29:00.146] Terminal shell path: C:\WINDOWS\System32\cmd.exe
[15:29:01.703] > [email protected]: 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
[email protected]: Permission denied (publickey,password).

  • 参考一些大佬的教程

腾讯云官网 ssh 连接教程


登录失败

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

Permission denied (publickey,password)问题的解决办法_第1张图片

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

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.先清空所有权限

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

Permission denied (publickey,password)问题的解决办法_第2张图片

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

Permission denied (publickey,password)问题的解决办法_第3张图片

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

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

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

3.测试连接

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

Permission denied (publickey,password)问题的解决办法_第4张图片
参考:https://www.cnblogs.com/chkhk/p/13414823.html

你可能感兴趣的:(计算机应用技术,python)