sh: .ssh/authorized_keys: 是目录吗?

use*_*660 2 ssh

我正在尝试使用命令将 /id_rsa.pub 复制到另一台机器

cat .ssh/id_rsa.pub | ssh root@10.0.2.15 'cat >>
.ssh/authorized_keys'
Run Code Online (Sandbox Code Playgroud)

但不断收到错误

sh: .ssh/authorized_keys: Is a directory
Run Code Online (Sandbox Code Playgroud)

我使用以下命令创建了目录

mkdir ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

目标机器上命令的输出

ls -l /root/.ssh
Run Code Online (Sandbox Code Playgroud)

是“总0”

Arr*_*cal 5

问题是您创建了一个名为~/.ssh/authorized_keys. 这应该是一个文件。我不确定这是怎么发生的,因为您列出的命令应该只是在其中创建了~/.ssh目录和authorized_keys文件。

删除远程机器上的授权密钥目录,并替换为一个文件。或者更好的是,使用ssh-copy-id来自本地机器的命令来创建文件并在一个命令中添加密钥:

ssh-copy-id user@ip-address
Run Code Online (Sandbox Code Playgroud)