您好,感谢您的阅读,
基本上,我接替某人承担一些系统管理职责,边做边学,但我遇到的一个问题是没有将我的公共 RSA 密钥放到特定的服务器上——该服务器已经启用了仅 RSA 访问权限。
因此,基本上,我无法通过 SSH 远程访问服务器,但我可以物理访问相关服务器,并且可以直接登录,具有超级用户权限等。我需要将自己的公钥放入服务器上的 authorized_keys 目录中,或者从命令行生成新密钥并以某种方式将新私钥发送到我的笔记本电脑。
我已尝试复制已连接到此服务器的其他服务器上的公钥,我可以通过远程 SSH 进入,但由于 RSA 密钥限制,scp 似乎无法连接(权限被拒绝:公钥)。
关于如何最好地做到这一点,您有什么想法吗?不确定是否可以通过 USB 将公钥文件加载到服务器之类的方法。就像我说的,我对 Ubuntu 有点菜鸟。
提前致谢。
更新:首先,感谢大家的贡献。我现在已经将文件上传到服务器上,使用 USB 并弄清楚如何将其物理安装到服务器上并复制文件。现在的问题是,当我尝试猫将公钥文件放入 .ssh/authorized_keys 文件中,什么都没有发生——它读出了 SSH 密钥,但 authorized_keys 文件仍然空白。
权限应该按照教程正确设置——chmod 600、700、755,等等,但也许我做错了。没有弹出错误消息。
答案1
Ubuntu 知识库中的这篇文章告诉您所需的所有步骤。https://help.ubuntu.com/community/SSH/OpenSSH/Keys
以下是相关信息(我自己在公司服务器上使用了这种方法,在我的盒子上编辑了文件):
(首先,将文件复制到记忆棒或您可以在服务器上下载的位置 - 请阅读下面的评论,了解 yoonix 提供的其他各种方法) - 如果您没有 USB 端口,则使用 wget、curl、scp、ftp 将其存储到远程位置。另一种方法是将其通过电子邮件发送到服务器上的帐户。
将文件复制到服务器后:
您需要传输到主机的密钥实际上是公共密钥。如果您可以使用密码通过 SSH 登录计算机,则可以从自己的计算机执行以下操作来传输 RSA 密钥:
将公钥文件复制到服务器,然后手动将其连接到 authorized_keys 文件。最好先备份该文件:
cp authorized_keys authorized_keys_Backup
cat id_rsa.pub >> authorized_keys
您可以通过执行以下操作来确保它有效:
ssh <username>@<host>
系统将提示您输入密钥的密码:
Enter passphrase for key '/home/<user>/.ssh/id_rsa':
输入您的密码,并且假设主机配置为允许基于密钥的登录,那么您就可以像往常一样登录。
答案2
谢谢大家的回答,它们非常有帮助。
最终,我的解决方案是弄清楚如何将 USB 驱动器安装到物理服务器上并复制公钥文件。
无论出于什么原因,将文件与authorized_key文件夹进行传统的连接都不起作用,尽管我99%确定我正确地设置了权限,但我发现了如何使用Shift-Insert将RSA密钥文件信息直接放入authorized_keys中,现在它就可以正常工作了。