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

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

文档讲述了~/.ssh/authorized_keys文件,但是没有~/.ssh/authorized_keys文件是我的主目录。

该文件是否应该自动生成?

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

我只是想知道,如果没有这个文件是正常的,我自己创build。

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

如果您在运行OpenSSH的客户端上生成密钥,则使用ssh-copy-id [ 如上所述 ]将公钥传输到服务器,使用该密码login服务器。

如果通过其他方法生成密钥,请将生成密钥的id_rsa.pub文件复制到服务器上的~/.ssh/authorized_keys (如有必要,创build目录~/.ssh )。 确保所有三个主目录~/.ssh~/.ssh/authorized_keys都只能写入用户(没有组或其他写入权限)。 如果你想授权多个密钥,只需将它们连接到~/.ssh/authorized_keys (所以~/.ssh/authorized_keys每行有一个公钥)。

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

从该页面:

私钥保存在您login的计算机上,公钥保存在要login的所有计算机上的.ssh / authorized_keys文件中。

当使用ssh-keygen创build密钥文件时,您将获得名为id_rsaid_rsa.pub文件。 首先是您的私钥(可能是密码保护),并应始终保密。 你是客户

后者是你的公钥,可以给对方, 服务器 。 服务器可以允许多个公钥。 关键文件是纯文本文件,所以你可以用任何文本编辑器打开它们。 公钥文件只有一行,这行应该添加到服务器上的~/.ssh/authorized_keys文件中。

下面的私钥和公钥是使用ssh-keygen -t rsa生成的。 前面的命令创build了文件~/.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

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

 chmod 400 ~/.ssh/authorized_keys 

是的,这是正常的。 只要创build一个你想添加ssh-keys。