我正在建立我的第一个家庭服务器,并希望从互联网上ssh-able,所以我可以在任何地方访问它。
我正在按照本指南进行操作,直到目前为止我理解它为止
生成密钥对后,就可以将公钥放在我们想要使用的虚拟服务器上。
您可以使用以下命令将公钥复制到新计算机的
authorized_keys
文件中ssh-copy-id command
。请务必替换下面的示例用户名和IP地址。ssh-copy-id user@123.45.56.78
或者,您可以使用SSH粘贴密钥:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
我很困惑,因为任何人都不能在他们的本地计算机上生成一个rsa密钥,然后将其复制到我的服务器(假设他们知道服务器上的IP地址或域名和用户名)?
是的,你从DanielB的答案中看到了..此外,你还必须启用PasswordAuthentication才能复制密钥。有时指南不能解释除了输入命令之外的其他事情。所以从指南中学习的方法是从指南中做到这一点。在这种情况下,如果您尝试了它,您会看到它提示输入密码。
—
barlop 2015年
对,我还有一个问题。这比使用密码更好,因为有人可以尝试强制复制密钥的方法,因为你需要复制密钥就是密码。
—
user2237160 2015年
或者,如果您在设置中禁用PasswordAuthentication,是否可以将更多rsa密钥复制到服务器?
—
user2237160 2015年
蛮力。一旦密钥被复制,那么PasswordAuthentication可以设置为否。然后ssh-copy-id无法进入。为了进入,ssh-copy-id将ssh。因此,如果源计算机的密钥不在目标服务器和PasswordAuthentication设置为否,然后ssh-copy-id无法进入,因为ssh无法进入。默认情况下,ssh首先尝试PubKeyAuthentication,然后尝试PasswordAuthentication。因此,如果密钥有效,则无法提示,如果密钥失败,则会收到密码提示。并且sshd经常将PubKeyAuthentication和PasswordAuthentication设置为yes。
—
barlop 2015年
我不确定ssh-copy-id是否尝试PubKeyAuthentication,但是如果它确实是没有意义的话。因为如果它可以通过密钥进入,那么它无关,如果它不能,它将不得不尝试PasswordAuthentication。BTW例如,ssh可以指定只执行PasswordAuthentication
—
barlop 2015年
$ ssh -o "PubKeyAuthentication no" user@comp
或PasswordAuthentication no,因此它只尝试PubKeyAuthentication。默认情况下,它会同时尝试按键,如果失败则按密码。它尝试的任何方法只有在dest计算机上的sshd_config允许的情况下才能工作