RSA 公钥:没有这个文件或目录?

20

我正在尝试跟进Upskillcourses.com的Web开发在线课程。在第11课中,我应该将cloud9链接到github。

我试图获取SSH密钥。但它不起作用:

ec2-user:~/environment $ cat ~/.ssh/id_rsa.pub
cat: /home/ec2-user/.ssh/id_rsa.pub: No such file or directory

我像教练一样完全复制了它。老实说,我不知道我在做什么或如何修复它。似乎没有其他人遇到这个问题。感谢任何帮助


3
SO专门用于编程问题,而非有关使用或配置Linux及其应用程序的问题。对于此类问题,[su]或[unix.se]可能是更好的提问地点。 - Barmar
2
你从未执行过 ssh-keygen 命令来创建 SSH 密钥。 - Barmar
谢谢@Barmar,下次我一定会问一些关于Linux的问题。 - Coder117
4个回答

32
使用ssh-keygen创建默认的ssh密钥对,暂时不设密码:
ssh-keygen -t rsa -C "MyEmailAddress" -f ~/.ssh/id_rsa -P ""

那么任何 SSH 命令都会默认使用该密钥。


5

首先,使用以下命令检查是否存在现有的SSH密钥:

ls -al ~/.ssh

检查目录列表以查看是否已经拥有公共SSH密钥。默认情况下,公钥文件名为以下之一:id_xxxx.pub(例如:id_rsa.pub)。如果您没有现有的公私钥对,请使用以下命令创建一个:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

这将使用提供的电子邮件作为标签创建新的ssh密钥。当提示“输入要保存密钥的文件”时,请按Enter。这将接受默认的文件位置。在提示符处,键入一个安全密码。

如果您看到要连接到GitHub的现有公共和私人密钥对或完成上述密钥生成步骤后,您可以使用以下命令将SSH密钥添加到ssh-agent中:

eval "$(ssh-agent -s)"

ssh-add ~/.ssh/id_rsa (如果您使用MAC OS,则添加-K选项,因为它将在将SSH密钥添加到ssh-agent时将密码添加到您的Keychain中。)

来源:https://docs.github.com/


0

这在我只是在不同于SSH密钥所在的目录时发生了。

为了修复这个问题: 你需要检查SSH密钥保存的目录路径。向上滚动到创建密钥的位置,你应该会看到:

Your public key has been saved in /Users/userlocation/.ssh/id_rsa.pub

现在检查您的工作目录:

pwd

如果您的工作目录与保存SSH密钥的目录不同,请更改目录:
cd /Users/userlocation #find yours!

然后运行命令(稍作修改):

cat .ssh/id_rsa.pub

这对我有用!(记得先运行ssh-keygen!)


0
我只是在ssh-keygen之前加了sudo,然后它就起作用了。
sudo ssh-keygen

1
这真让人惊讶。ssh-keygen默认将新生成的密钥写入到你的家目录下的~/.ssh/文件夹中。如果没有使用sudo,ssh-keygen应该可以正常工作。如果没有成功,要么你没有完整地输入命令,要么你的家目录中有不属于你的文件(可能是因为你在不应该使用sudo的情况下使用了sudo)。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接