当我尝试使用创建 SSH 密钥时,sudo ssh-keygen -t rsa
我收到以下请求:
Enter file in which to save the key (/root/.ssh/id_rsa):
但是,我希望将文件保存在 中/home/user2/.ssh/id_rsa
。当我进入该目录时,出现以下错误:
Saving key "/home/user2/.ssh/id_rsa" failed: No such file or directory
任何尝试进入不同目录的行为都会返回错误。
我如何生成密钥/home/user2/.ssh/id_rsa
?
编辑:当我删除时,sudo
我遇到了这个问题:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hduser/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Saving key "/home/hduser/.ssh/id_rsa" failed: Not a directory
但是 SSH 不应该创建目录吗?
答案1
当我尝试使用创建 SSH 密钥时,
sudo ssh-keygen -t rsa
我收到以下请求:Enter file in which to save the key (/root/.ssh/id_rsa):
通过使用sudo
您要求在另一个帐户下运行该程序,具体来说是 root。因此,keygen 将以 root 身份运行,创建属于 root 的密钥,当然它将使用 root 的主目录来存储该密钥。
要创建属于您自己的文件(并使用您自己的路径等),就不要使用sudo
。
如果不使用sudo
会导致奇怪的权限错误,最好调查并修复这些问题——如果你只是整个事情,它们不会悄悄地自我修复sudo
;通常这只会让情况变得更糟。
当我删除 sudo 时出现这个问题:
Generating public/private rsa key pair. Enter file in which to save the key (/home/hduser/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Saving key "/home/hduser/.ssh/id_rsa" failed: Not a directory
但是 SSH 不应该创建目录吗?
应该可以。但错误信息真正的意思是/home/hduser/.ssh
已经存在 – 它只不过是一个目录以外的东西。它可能是一个文件、一个损坏的符号链接、一个文件的符号链接等等。
再次:调查情况。要查看.ssh
实际情况,请ls -ld
对其进行操作。如有必要,请重命名文件/链接/项目或将其完全删除。
答案2
对我来说,这种情况的原因是密钥生成器尝试创建密钥的位置上有一个现有密钥。通过以下方式删除密钥
sudo rm -rf /home/ec2-user/.ssh
并重新运行相同的命令就可以了。
PS 我正在 AWS 主机上工作。你可以尝试做
sudo rm -rf ~/.ssh