文件的文件名为 ?? 是什么意思?

文件的文件名为 ?? 是什么意思?

我尝试生成一个新的 SSH 密钥对

jacob@mystuff:~$ ssh-keygen -t rsa -C "GitLab" -b 4096

jacob@mystuff:~$ ls -la
total 32
drwxr-xr-x 3 jacob jacob 4096 Feb 18 00:09 .
drwxr-xr-x 4 root  root  4096 Feb 18 00:05 ..
-rw------- 1 jacob jacob 3326 Feb 18 00:09 ??
-rw-r--r-- 1 jacob jacob  220 Feb 18 00:05 .bash_logout
-rw-r--r-- 1 jacob jacob 3771 Feb 18 00:05 .bashrc
-rw-r--r-- 1 jacob jacob  655 Feb 18 00:05 .profile
-rw-r--r-- 1 jacob jacob  732 Feb 18 00:09 ??.pub
drwxrwxr-x 2 jacob jacob 4096 Feb 18 00:08 .ssh

jacob@mystuff:~$ cat ~/.ssh/id_rsa.pub
cat: /home/jacob/.ssh/id_rsa.pub: No such file or directory

答案1

ls-q如果设置了开关或等效的长开关,则只会打印出问号,而文件名中的该位置实际上没有问号。--hide-control-chars但事实并非如此。这意味着您有一个名为的文件??

steeldriver 的假设可能是正确的:您在运行??时声明了密钥的名称。ssh-keygen

这很明显,因为在成功执行ssh-keygen之前就运行了ls,它会创建一个包含私钥(可能已加密)的文件(其名称您可以选择)和一个​​包含公钥的文件,公钥以包含私钥的文件的名称开头,但以.pub结尾。有一个名为的文件??和一个名为的文件??.pub,所以这完全说得通。

与要求您说明的所有其他具有默认值的事物一样,您只需按下即可Enter接受密钥文件位置的默认值。

要将文件名和位置更改为默认键之一,请执行以下命令:

mkdir -p ~/.ssh
mv ~/?? ~/.ssh/id_rsa
mv ~/??.pub ~/.ssh/id_rsa.pub

.ssh如果文件夹不存在,第一个会在您的主目录中创建该文件夹;第二个会将您的私钥移动到其中;第三个会将您的公钥移动到其中。

相关内容