bash: /home/user/.ssh/authorized_keys: 没有那个文件或目录

use*_*060 49 ssh command-line

创建 ssh 密钥:
命令:

ssh-keygen -t rsa –P ""
Run Code Online (Sandbox Code Playgroud)

将密钥移动到授权密钥:
命令:

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
bash: /home/user/.ssh/authorized_keys: No such file or directory
Run Code Online (Sandbox Code Playgroud)

Lou*_*sen 103

您必须第一次创建.ssh目录和authorized_keys文件。

  1. 创建.ssh目录:

    mkdir ~/.ssh
    
    Run Code Online (Sandbox Code Playgroud)
  2. 设置正确的权限:

    chmod 700 ~/.ssh
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建authorized_keys文件:

    touch ~/.ssh/authorized_keys
    
    Run Code Online (Sandbox Code Playgroud)
  4. 设置正确的权限:

    chmod 600 ~/.ssh/authorized_keys
    
    Run Code Online (Sandbox Code Playgroud)

权限很重要!如果没有正确的权限,它将无法工作!

现在您可以将公钥添加到authorized_keys文件中:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

您必须将计算机的公钥添加到要使用 SSH 密钥访问authorized_keys计算机的文件中!


正如 terdon 提到的,你也可以使用这个命令:

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

这会将您的id_rsa.pub(在您的~/.ssh目录中)放在远程计算机的authorized_keys文件中,.sshauthorized_keys在必要时创建具有正确权限的目录和文件。

  • 在任何情况下,您都不想只是“cat”它,这就是“ssh-copy-id”的用途。 (5认同)

小智 0

尝试

 touch $HOME/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

使用该用户的权限创建空文件。

当您使用该用户第一次访问远程主机时,将创建此文件。