设置 ssh 公钥

设置 ssh 公钥

好的,所以我正在尝试设置一个登录名,以便使用公钥通过 ssh 登录。

首先,我使用 puttygen 使用密码生成 rsa-ssh2 公钥。我按照指示生成了密钥。我将私钥保存在 putty 自己的文件中,puttygen 还生成了公钥。

在 Putty 中,我将其设置为使用私钥文件并使用 rsa-ssh2 等...

所以我从 puttygen 中 c/p 了我的 houtput ssh2 公钥内容并在服务器上,我将其放入

username/.ssh/authorized_keys

所以我尝试通过 putty 登录,首先它提示我输入用户名而不是询问密码,然后当我输入它时(我尝试了用户名和密码)它说我的公钥无效。

我想也许我以某种方式c​​/p'd或将信息格式化为authorized_keys错误,所以我回去仔细检查。我确保它全部在一条线上,间隔适当等等......

我还检查了以下文件/etc/ssh/ssh_config,并且有以下内容:

IdentityFile ~/.ssh/id_rsa

我尝试将authorized_keys文件重命名为id_rsa,但没有任何乐趣。

我尝试将 ssh_config 中的该行更改为

IdentityFile ~/.ssh/authorized_keys

……没有欢乐。

我回想也许我的公钥格式错误或者腻子配置不正确,所以我要求一个朋友在他的服务器上为我创建一个临时帐户并添加我的公钥,然后我就可以通过腻子登录了。 ..当我连接到他的服务器时,它提示我输入密钥的密码并让我顺利登录。

所以他建议我看看上面的东西,但没有喜悦,他不知道还要检查什么......我想我正在吸引这里的专家:P

想法?

答案1

检查权限。如果用户的主目录 ~/.ssh 或 ~/.ssh/authorized_keys 是全局可写的,OpenSSH 将不允许公钥身份验证。另外, ~/.ssh 和 ~/.ssh/authorized_keys 可能也不应该是组可写的。将 IdentityFile 保留为默认值,它与服务器方面无关。它指向 UNIX/Linux 上 ssh 客户端使用的默认私钥文件。 ssh_config 仅由 ssh 客户端使用,而不由 OpenSSH sshd 服务器使用。 authorized_keys 的内容应该是每个有权登录的公钥一行,如下所示:

ssh-rsa AAA.../Us= 我的公钥评论

其中 ... 是一堆 Base64 字符 ( [a-zA-Z/+=])。 PuTTYGen 可以生成两种形式的密钥:PuTTY 和 OpenSSH 兼容。 OpenSSH 兼容将是上述格式的一长行。如果它是 PuTTY 格式,您可以将其导入回 PuTTYGen 并另存为 OpenSSH。

答案2

我最终使用 ssh-keygen 在我的服务器上生成公钥/私钥,然后将私钥导入 puttygen 并保存为 putty 的 .ppk 文件,这样就成功了。

我仍然不知道出了什么问题,但我想这与 puttygen 生成的公钥和/或私钥有关...:/

编辑:

啊啊啊我想通了!这是因为我的服务器想要一个 2048 位密钥,而我正在使用 puttygen 生成一个 1024 位密钥

相关内容