2017-04-15 50 views
1

互联网文档建议禁用SSH密码认证和使用,而不是一个加密密钥对认证。例如参见Linode's documentation上传多个SSH密钥有关保护VPS一个VPS

我不知道在什么情况下会发生其公钥我上传到我的服务器停止工作的电脑,我要切换到另一台计算机:这是最坏的情况。

不过,我可能只是想改变我的旧电脑有一个新的。或者我可能会试图调整我的硬盘的大小,然后安装下一个LTS Ubuntu版本,并移动我的所有数据,而不是尝试进行有风险的升级:尽管如此,我的新操作系统将生成/使用不同的ssh密钥。

我能做些什么,以避免从我的服务器锁定?
据我了解,一旦SSH密码验证是禁用的,公钥上传到服务器,就可以通过ssh连接到服务器只使用该密钥。不过,我想知道:有没有办法上传多个公钥?如果这是可能的,服务器将通过不同的公钥通过身份验证接受来自多台计算机的连接(尽管我没有看到第二台计算机可以通过SSH连接来上传其密钥)。

是否可以备份我的id_rsaid_rsa.pub文件?

+1

我想你可以使用键从一个虚拟机来代替。在你遇到盒子死亡的情况下,你可以在另一台主机上设置虚拟机,并且仍然可以从这台虚拟机访问远程计算机。 – Cyclonecode

+0

我明白了,您建议对虚拟机进行备份并最终将其复制到新主机上? – Asarluhi

+1

是的,如果你想稍后在另一台机器上使用它。虚拟机可以从一个非常小的Linux发行版创建,例如knoppix或类似的。请注意,我不确定这是否可行,但可能值得一试。 – Cyclonecode

回答

1

,您可以根据需要尽可能多的项添加到sshd您的VPS:

  • 生成一个与ssh-keygen和生成的密钥保存某处
  • 副本公共部分(与sufix .pub)到您的服务器
  • 添加此公钥到~/.ssh/authorized_keys文件(或sshd_configAuthorizedKeysFile项中指定的一个):cat key.pub >>~/.ssh/authorized_keys
  • RELO广告的sshd(在我的Ubuntu它是这样sudo service ssh reload
  • 使用新密钥连接:ssh -i /path/to/private-key [email protected]
+0

第三点是在我的本地机器还是在服务器上执行?如果我没有错,这个过程会在_same_机器和_same_ OS中创建一个新的ssh密钥。 – Asarluhi

+1

@Asarluhi是的,第3点和第4点要在服务器上运行。基本上,第3点将'sshd'配置为信任拥有您所添加密钥的任何客户端,并且点4只是告诉'sshd'使用新配置。 –

+0

如果使用'ssh-copy-id'完成第2点,这个命令应该自动编辑'〜/ .ssh/authorized_keys'(点3仍然是必须的),也可能会覆盖前一个键。我错了吗? – Asarluhi