AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1041347
Accepted
Mathieu
Mathieu
Asked: 2020-11-05 19:26:55 +0800 CST2020-11-05 19:26:55 +0800 CST 2020-11-05 19:26:55 +0800 CST

无法访问我的服务器“权限被拒绝(公钥)”。

  • 772

嗨,我在我的服务器 B 上创建了一个密钥环

我将服务器 B 的公钥复制到服务器 A 的 authorized_keys 文件中

我的服务器在 Ubuntu 20.04 LTS 上

当我尝试将目录从服务器 A 传输到服务器 B 时,出现此错误:

ubuntu@server_B:~$ scp -r -p ubuntu@server_A:/home/ubuntu/www-example-com/ /home/ubuntu/www-example-com/
ubuntu@server_A: Permission denied (publickey).

为什么我有这个错误?如何纠正?

ubuntu@server_B:~$ ls -l /home
total 20
drwx------  2 root   root   16384 Nov  5 01:14 lost+found
drwxr-xr-x 11 ubuntu ubuntu  4096 Nov  5 03:57 ubuntu



ubuntu@server_B:~$ ls -a -l /home/ubuntu
total 76
drwxr-xr-x 11 ubuntu ubuntu 4096 Nov  5 03:57 .
drwxr-xr-x  4 root   root   4096 Nov  5 01:04 ..
-rw-------  1 ubuntu ubuntu 4961 Nov  5 03:38 .bash_history
-rw-r--r--  1 ubuntu ubuntu  220 Feb 25  2020 .bash_logout
-rw-r--r--  1 ubuntu ubuntu 3771 Feb 25  2020 .bashrc
-rw-rw-r--  1 ubuntu ubuntu  241 Nov  5 01:28 bridge_log.txt
drwx------  3 ubuntu ubuntu 4096 Nov  5 01:24 .cache
drwxr-x---  3 ubuntu ubuntu 4096 Nov  5 01:24 .config
drwx------  4 ubuntu ubuntu 4096 Nov  5 01:28 .gnupg
drwxrwxr-x  3 ubuntu ubuntu 4096 Nov  5 03:57 .local
-rw-------  1 ubuntu ubuntu  409 Nov  5 03:50 .mysql_history
drwxr-xr-x  9 ubuntu ubuntu 4096 Nov  5 03:27 nginx-1.18.0
drwxrwxr-x  7 ubuntu ubuntu 4096 Nov  5 03:27 ngx_brotli
drwx------  3 ubuntu ubuntu 4096 Nov  5 01:24 .password-store
-rw-r--r--  1 ubuntu ubuntu  807 Feb 25  2020 .profile
drwx------  2 ubuntu ubuntu 4096 Nov  5 04:43 .ssh
-rw-r--r--  1 ubuntu ubuntu    0 Nov  5 01:07 .sudo_as_admin_successful
-rw-rw-r--  1 ubuntu ubuntu  204 Nov  5 03:33 .wget-hsts
drwxr-xr-x  2 ubuntu ubuntu 4096 Nov  5 04:00 www-example-com



ubuntu@server_B:~$ ls -l .ssh
total 16
-rw------- 1 ubuntu ubuntu  748 Nov  5 04:34 authorized_keys
-rw------- 1 ubuntu ubuntu 3434 Nov  5 04:32 id_rsa_dev-example-com
-rw-r--r-- 1 ubuntu ubuntu  748 Nov  5 04:32 id_rsa_dev-example-com.pub
-rw-r--r-- 1 ubuntu ubuntu  222 Nov  5 04:43 known_hosts

和

ubuntu@server_A ~ $ ls -l /home
total 20
drwx------  2 root   root   16384 Sep  7 17:10 lost+found
drwxr-xr-x 12 ubuntu ubuntu  4096 Nov  5 02:02 ubuntu



ubuntu@server_A ~ $ ls -a -l /home/ubuntu
total 148
drwxr-xr-x 12 ubuntu ubuntu  4096 Nov  5 02:02 .
drwxr-xr-x  4 root   root    4096 Sep  7 17:04 ..
-rw-------  1 ubuntu ubuntu 72711 Nov  5 02:02 .bash_history
-rw-r--r--  1 ubuntu ubuntu   220 Feb 25  2020 .bash_logout
-rw-r--r--  1 ubuntu ubuntu  4049 Sep  7 21:13 .bashrc
-rw-rw-r--  1 ubuntu ubuntu   258 Sep  7 17:20 bridge_log.txt
drwx------  4 ubuntu ubuntu  4096 Sep  7 17:50 .cache
drwxr-x---  4 ubuntu ubuntu  4096 Sep  7 17:50 .config
drwxrwxr-x  3 ubuntu ubuntu  4096 Sep  7 21:13 .drush
drwx------  4 ubuntu ubuntu  4096 Oct 27 16:15 .gnupg
drwxrwxr-x  3 ubuntu ubuntu  4096 Sep  7 17:50 .local
-rw-------  1 ubuntu ubuntu  3417 Sep 14 04:38 .mysql_history
drwxr-xr-x  9 ubuntu ubuntu  4096 Sep  7 17:38 nginx-1.18.0
drwxrwxr-x  7 ubuntu ubuntu  4096 Sep  7 17:38 ngx_brotli
drwx------  3 ubuntu ubuntu  4096 Sep  7 17:18 .password-store
-rw-r--r--  1 ubuntu ubuntu   807 Feb 25  2020 .profile
-rw-rw-r--  1 ubuntu ubuntu    66 Sep  7 21:15 .selected_editor
drwx------  2 ubuntu ubuntu  4096 Nov  5 04:42 .ssh
-rw-r--r--  1 ubuntu ubuntu     0 Sep  7 17:07 .sudo_as_admin_successful
-rw-rw-r--  1 ubuntu ubuntu   244 Nov  5 03:45 .wget-hsts
drwxr-xr-x  6 ubuntu ubuntu  4096 Nov  4 01:03 www-example-com



ubuntu@server_A ~ $ ls -l .ssh
total 4
-rw------- 1 ubuntu ubuntu 1496 Nov  5 04:33 authorized_keys

服务器 B(副本)

$ cat /home/ubuntu/.ssh/id_rsa_dev-example-com.pub

服务器 A(过去)

$ nano /home/ubuntu/.ssh/authorized_keys
$ sudo systemctl restart ssh
ubuntu security command-line-interface ssh public-key
  • 2 2 个回答
  • 1112 Views

2 个回答

  • Voted
  1. Ryan
    2020-11-05T23:37:35+08:002020-11-05T23:37:35+08:00

    加密密钥是一组用于建立安全连接的访问​​凭证。远程 SSH 守护程序不接受提供的密钥对您使用的帐户名有效,并拒绝您的登录。确保 authorized_keys 文件包含匹配的公钥。检查您的公钥是否已添加到服务器。

    需要 SSH 客户端密钥对指纹检查 ssh -i ~/.ssh/test-key.pem ubuntu@server_IP

    同样通过以下步骤,您可以重新检查 SSH 密钥

    根本原因:

    关于基于密钥的身份验证的许多最常见问题是由不正确的文件权限或所有权引起的。以下是您可以采取的一些步骤来解决此问题:

    - 确保authorized_keys 文件和私钥本身具有正确的权限和所有权。

    - 检查服务器是否允许基于密钥的身份验证。

    - 确保 SSH 客户端可以读取私钥。

    - 您可能正在使用 OpenSSH 服务不再支持的私钥。这通常会在使用私有 SSH DSA 密钥时产生影响。所以尝试创建一个 2048 位的 RSA 密钥对。

    简单的 3 个步骤:

    - 生成 SSH 密钥对 - 将公钥复制到 Ubuntu 服务器 - 登录远程服务器

    注意:去掉'#'并执行

    1.生成SSH Key Pair [serverB] [Public key + Private key]

    #mkdir –p $HOME/.ssh #创建一个隐藏目录来存储你的 SSH 密钥

    #chmod 0700 $HOME/.ssh #根据需要修改该目录的权限

    #ssh –keygen –t rsa 4096 #create a 2048-bit RSA key pair #server 会要求你创建一个密码短语作为额外的安全层,如果需要你可以添加一个输入一个难忘的密码短语,然后按 Enter 或者你可以跳过它。

    2.将公钥复制到[serverA]

    #系统会将~/.ssh/id_rsa.pub的内容从客户端系统复制到服务端系统的~/.ssh/authorized_keys目录下。

    #ssh-copy-id ubuntu@<server_IP> #######重要########

    或手动将 SSH 密钥复制到 [serverA]

    #cat ~/.ssh/id_rsa.pub | ssh username@<server_IP> "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

    #将 server_IP 替换为您的服务器的实际 IP 地址。

    3.登录远程服务器

    #ssh ubuntu@server_IP

    一旦你能够 SSH 重试 scp

    • 0
  2. Best Answer
    tater
    2020-11-05T23:49:53+08:002020-11-05T23:49:53+08:00

    如评论中所述,您没有指定身份文件。

    默认情况下,将检查一组特定的文件名,例如~/.ssh/id_rsa,并且您的身份文件不是这样命名的。因此ssh没有找到私钥。

    使用 指定身份文件-i,例如ssh -i ~/.ssh/id_rsa_dev-example-com user@host。或者将文件重命名为默认值,例如mv ~/.ssh/id_rsa_dev-example-com ~/.ssh/id_rsa.

    • 0

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 如何在 Ubuntu 上挂载 LVM 分区?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve