不经意删除.ssh / authorized_keys,这是一个严重的错误吗?


13

我是刚在Ubuntu 16.04上设置SSH密钥的新手。我正在寻找一个授权密钥来删除已命名的密钥,anne但我想我删除了整个authorized_keys文件。

mike@mike-thinks:~$ rm /home/mike/.ssh/
authorized_keys  id_rsa           id_rsa.pub       known_hosts
mike@mike-thinks:~$ rm /home/mike/.ssh/authorized_keys 

这是严重的错误吗?如果是,如何重新生成它们?同时,我做到了:

mike@mike-thinks:~/.ssh$ touch ~/.ssh/authorized_keys
mike@mike-thinks:~/.ssh$ ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts
mike@mike-thinks:~/.ssh$ chmod 600 ~/.ssh/authorized_keys

第一个rm命令最终如何列出目录的内容?那是应该的复制错误ls /home/mike/.ssh/吗?
Barmar

3
@Barmar,这就是当您单击制表符以自动完成路径时在Bash中的样子,并且有多种选择。
ilkkachu

2
现在是考虑备份还原的最佳时机。
恢复莫妮卡-M.Schröder18年

Answers:


21

~/.ssh/authorized_keys文件包含公用密钥列表。它允许拥有与其中之一匹配的私钥的每个人连接到该计算机,并使用该用户帐户进行远程访问(~路径前面的波浪号表示该文件位于当前用户的主目录下)。

在服务器(计算机要连接):

如果删除此文件,则任何人都无法使用其私钥在该用户帐户下进行身份验证。除非禁用密码验证,否则它仍然可以使用。

您必须重新生成文件,然后再次使用公共密钥身份验证方法添加要授予访问权限的所有公共密钥。

在客户端(您要从其连接的计算机,即您的本地计算机)上:

在这里,您不需要authorized_keys文件,因为您可能不想授权任何密钥并授予它们对本地计算机的远程访问权限。它应该为空或删除。

在客户端上,您只需要在服务器上授权的私钥文件(即,在服务器上的文件中具有其对应的公钥authorized_keys),以及可选的适当的configknown_hosts文件。


谢谢 !嗯,我真的对公用密钥,私有密钥和远程访问陌生。这是我的个人机器。我认为没有人可以远程访问我的计算机,但我认为没有。
Monica Revolucion

如果您不希望任何人访问该计算机,只需删除该文件或将其保留为空,就可以了。
pLumo

2
好吧,那我想您误读了。你并不需要authorized_keys在本地计算机上的文件,但在服务器上。
pLumo

3
ssh-keygen创建id_rsa和而id_rsa.pub不是authorized_keys。那是肯定的。
pLumo

1
请注意,将ssh 另一台计算机切换到台式计算机是很常见的,在这种情况下使用密钥进行身份验证更为安全。
Karl Bielefeldt

3

是的,您删除了整个文件。要重新创建它,所有用户都必须在服务器agein上复制其ssh密钥。您可以使用

ssh-copy-id user@hostname.example.com

如果您不想删除所有键,请编辑文件并在下次仅删除行。


谢谢,这是我的个人计算机。我不确定它是否还充当过服务器
Monica

2
在您的客户端上,您需要私钥文件和known_hosts,在服务器上则需要带有pubkeys的authorized_keys
trietend
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.