创建 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
创建
.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
您必须添加公钥你的电脑到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