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

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

答案1

您必须首先创建.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

您必须添加公钥你的电脑authorized_keys文件您想要使用 SSH 密钥访问的计算机


正如 terdon 提到的,您也可以使用此命令:

ssh-copy-id user@host

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

答案2

由于我的声誉不够,我在这里添加这个。除了 Louis Matthijssen 的回答之外,如果你仍然无法以你创建的用户身份通过​​ ssh 登录,例如

ssh username@host

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

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

发生这种情况的原因可能是您正在创建目录并将权限设置为,但不是用户名您想要用来访问服务器。

希望这对某人有帮助。

答案3

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

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

2)设置密钥:

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

注意准确复制密钥并将其粘贴到编辑器窗口的新行中。验​​证它是否占用一行并保存。

chmod 600 ~/.ssh/authorized_keys

答案4

如果在使用 创建密钥时ssh-keygen为其指定了文件名,此操作也会失败。我输入了一些名称my-ssh-file-name,它将密钥写入/Users/MyUserName而不是文件夹。如果您将文件名留空,它将按预期.ssh写入。.ssh

相关内容