Ubuntu 10.10(Maverick)上的 OpenSSH:是否应该自动生成 ~/.ssh/authorized_keys 文件?

Ubuntu 10.10(Maverick)上的 OpenSSH:是否应该自动生成 ~/.ssh/authorized_keys 文件?

我正在使用本指南设置公钥认证:https://help.ubuntu.com/community/SSH/OpenSSH/Keys

文档中谈到了该文件,但我的主目录中~/.ssh/authorized_keys没有文件。~/.ssh/authorized_keys

这个文件应该自动生成吗?

Maverick sshd 手册页没有指定该文件是否在安装 OpenSSH 时创建,或者是否应该手动创建该文件。

我只是想知道在我自己创建这个文件之前,没有这个文件是否正常。

答案1

~/.ssh/authorized_keys是每个用户的文件。安装 unix 程序永远不会写入用户的主目录。因此默认情况下该文件不存在(与空文件具有相同的效果)。

如果你在运行 OpenSSH 的客户端上生成密钥,请使用ssh-copy-id[如所述] 将公钥传输到服务器,然后使用一次密码登录服务器。

如果您通过其他方法生成密钥,请将id_rsa.pub生成密钥的文件复制到~/.ssh/authorized_keys服务器上(~/.ssh如有必要,请创建目录)。确保您的主目录、~/.ssh~/.ssh/authorized_keys仅对用户可写(无组或其他写入权限)。如果您想授权多个密钥,只需将它们连接起来~/.ssh/authorized_keys(这样~/.ssh/authorized_keys每行都有一个公钥)。

如果您使用 OpenSSH 以外的其他程序来生成密钥,则可能需要将公钥转换为 OpenSSH 格式。例如,在 PuTTY 中,使用'用于粘贴到 authorized_keys 文件中的公钥'

答案2

从该页面开始:

私钥保存在你登录的计算机上,而公钥存储在 .ssh/authorized_keys 文件中在所有要登录的计算机上。

使用 创建密钥文件时ssh-keygen,您将获得名为id_rsa和 的文件id_rsa.pub。第一个是您的私钥(可能受密码保护),应始终保密。您是客户

后者是你的公钥,可以提供给对方,服务器。服务器可以允许多个公钥。密钥文件是纯文本文件,因此您可以使用任何文本编辑器打开它们。公钥文件只有一行,应将此行添加~/.ssh/authorized_keys服务器

下面的私钥和公钥是使用 生成的ssh-keygen -t rsa。上一个命令创建了文件~/.ssh/id_rsa~/.ssh/id_rsa.pub

私钥文件~/.ssh/id_rsa如下所示:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,6D5AD2DF5464E16B4E92E81D095A5E7E

NbCawtGTPOfveFHvV93uw5/veo/fAmbZEcitpNlq/rPEy8ZLo7/0MltFDUupe6dI
...23 lines omitted...
eiau+K6IAbhp84/6ewXPVJ6JbfeS9vyOqkcPaZDlQ3rvbAxU9dfTptc/ZWxVoCDg
-----END RSA PRIVATE KEY-----

对应的公钥~/.ssh/id_rsa.pub如下:

ssh-rsa AAAAB3NzaC1yc2EA[some chars omitted]X3aKKB6lOyr0v user@host

第一个字是ssh-rsa(对于 RSA 密钥)或ssh-dss(对于 DSA 密钥)。第二部分(AAAAB3...r0v)是实际数据。user@host只是一条注释,可以替换为任何内容,例如sysadmin from home

答案3

只需使用您最喜欢的编辑器或创建它touch,但请确保它具有正确的权限。

chmod 400 ~/.ssh/authorized_keys

答案4

是的,这很正常。当您想要添加 ssh 密钥时,只需创建一个即可。

相关内容