我正在使用本指南设置公钥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_rsa和id_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。