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
文件。
-
创建
.ssh
目录:mkdir ~/.ssh
-
设置正确的权限:
chmod 700 ~/.ssh
-
创建
authorized_keys
文件:touch ~/.ssh/authorized_keys
-
设置正确的权限:
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用户身份设置权限,而不是您要访问服务器的用户名 。
希望这有助于某人。