Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 将多个ssh密钥上载到vps_Linux_Ssh_Vps_Ssh Keys - Fatal编程技术网

Linux 将多个ssh密钥上载到vps

Linux 将多个ssh密钥上载到vps,linux,ssh,vps,ssh-keys,Linux,Ssh,Vps,Ssh Keys,关于保护vps的Internet文档建议禁用SSH密码身份验证,而使用加密密钥对身份验证。例如,见 我想知道如果我上传到服务器的公钥的计算机停止工作,我必须切换到另一台计算机,会发生什么情况:这是最糟糕的情况 然而,我可能只是想换一台新的旧电脑。或者我可能会尝试调整我的硬盘大小,在上一个版本的基础上安装下一个LTS Ubuntu版本,并移动我的所有数据,而不是尝试冒险升级:不过,我的新操作系统将生成/拥有不同的ssh密钥 如何避免被锁定在服务器之外 据我所知,一旦禁用SSH密码身份验证并将公钥上

关于保护vps的Internet文档建议禁用SSH密码身份验证,而使用加密密钥对身份验证。例如,见

我想知道如果我上传到服务器的公钥的计算机停止工作,我必须切换到另一台计算机,会发生什么情况:这是最糟糕的情况

然而,我可能只是想换一台新的旧电脑。或者我可能会尝试调整我的硬盘大小,在上一个版本的基础上安装下一个LTS Ubuntu版本,并移动我的所有数据,而不是尝试冒险升级:不过,我的新操作系统将生成/拥有不同的ssh密钥

如何避免被锁定在服务器之外
据我所知,一旦禁用SSH密码身份验证并将公钥上载到服务器,就可以仅使用该密钥通过SSH连接到服务器。然而,我想知道:有没有办法上传多个公钥?如果这是可能的,服务器将通过不同的公钥通过身份验证接受来自多台计算机的连接(尽管我不知道第二台计算机如何通过ssh连接上载其密钥)


备份我的
id\u rsa
id\u rsa.pub
文件是否可行?

您可以在VPS上添加任意数量的密钥到
sshd

  • 使用ssh-keygen生成一个并保存在某处
  • 将生成密钥的公共部分(使用sufix
    .pub
    )复制到服务器
  • 将此公钥添加到
    ~/.ssh/authorized_keys
    文件(或
    sshd_config
    中的
    AuthorizedKeysFile
    项中指定的公钥):
    cat key.pub>~/.ssh/authorized_keys
  • 重新加载sshd(在我的Ubuntu上类似于sudo服务ssh-reload)
  • 使用新密钥进行连接:
    ssh-i/path/to/private-keyhost@user

我认为您可以使用虚拟机上的密钥。如果您在另一台主机上安装虚拟机,并且仍然可以从该虚拟机访问远程计算机。我明白了,您建议对虚拟机进行备份,并最终将其复制到新主机?是的,如果您以后想在另一台机上使用它。vm可以从一个非常小的linux发行版创建,比如knoppix或类似的发行版。请注意,我不确定这是否可行,但可能值得一试。在我看来,拥有虚拟机的完整副本而不仅仅是保留私钥副本是过分的。@OlegAndriyanov-如果实际的计算机发生故障或被盗,您将使用虚拟机。例如,您可以使用一个非常小的linux映像,它只有ca 50mb—第三点是在我的本地机器上还是在服务器上执行?如果我没有错,这个过程将在同一台机器和同一个操作系统中创建一个新的ssh密钥。@Asarluhi是的,第3点和第4点将在服务器上运行。基本上,第3点将
sshd
配置为信任任何拥有您正在添加的密钥的客户端,第4点只告诉
sshd
使用新配置。如果第2点是使用
ssh copy id
完成的,则此命令应自动编辑
~/.ssh/authorized_密钥(第3点仍然是必需的?)也可能会覆盖上一个键。我错了吗?@Asarluhi实际上,几乎整个过程都可以用
ssh-copy-id
完成,但我从未使用过它。所有对
授权密钥的编辑都归结为向文件追加一个新密钥,这是由操作员
>
完成的。请注意,它不会覆盖任何未联机的内容,它只是附加(或创建并附加)。好的,我现在就知道了。总之,您建议从授权计算机生成新密钥,将其添加到服务器,然后(隐式)将其复制到第二台计算机。谢谢,很好的解决方案。