bash:/home/user/.ssh/authorized_keys:没有这样的文件或目录

创建一个ssh密钥:
命令:

ssh-keygen -t rsa –P "" 

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

 cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys bash: /home/user/.ssh/authorized_keys: No such file or directory 

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

  1. 创建.ssh目录:

     mkdir ~/.ssh 
  2. 设置正确的权限:

     chmod 700 ~/.ssh 
  3. 创建authorized_keys文件:

     touch ~/.ssh/authorized_keys 
  4. 设置正确的权限:

     chmod 600 ~/.ssh/authorized_keys 

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

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

 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

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


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

 ssh-copy-id user@host 

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

如果您已通过电子邮件发送公钥以安装到远程服务器:

1)SSH进入服务器。 我在Windows上使用过PuTTY。

2)设置密钥:

 mkdir ~/.ssh chmod 700 ~/.ssh vi ~/.ssh/authorized_keys 

请务必准确复制密钥并将其粘贴到编辑器窗口中的新行中。 validation它是否占用一行并保存。

 chmod 600 ~/.ssh/authorized_keys 

尝试

  touch $HOME/.ssh/authorized_keys 

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

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

如果在使用ssh-keygen创建密钥时,您也可以使用文件名。 我输入了一些名称my-ssh-file-name ,它将密钥写入/Users/MyUserName而不是.ssh文件夹。 如果您将文件名留空,它将按预期写入.ssh

由于我没有足够的声誉,我在这里添加。 除了Louis Matthijssen的回答,如果你仍然无法通过ssh作为你创建的用户登录,比如

 ssh username@host 

那么这可能是因为缺少必须添加到/home/username/.ssh文件夹的所有者权限 。 我有同样的问题,您可以将此权限授予:

 chown -R username:username /home/username/.ssh 

这可能只是因为您创建目录并以root用户身份设置权限,而不是您要访问服务器的用户名

希望这有助于某人。