![尝试使用 ssh-keygen 和 ssh-keyadd 制作用于 GUI 程序的密钥后,无法再通过 ssh 连接到学校服务器](https://linux22.com/image/175823/%E5%B0%9D%E8%AF%95%E4%BD%BF%E7%94%A8%20ssh-keygen%20%E5%92%8C%20ssh-keyadd%20%E5%88%B6%E4%BD%9C%E7%94%A8%E4%BA%8E%20GUI%20%E7%A8%8B%E5%BA%8F%E7%9A%84%E5%AF%86%E9%92%A5%E5%90%8E%EF%BC%8C%E6%97%A0%E6%B3%95%E5%86%8D%E9%80%9A%E8%BF%87%20ssh%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E5%AD%A6%E6%A0%A1%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
所以,我认为我破坏了我的 SSH 配置,而且我对它是如何工作的并没有足够了解,无法完成我最初所做的事情。我会尝试尽可能详细。
我在数据库课程中,我们必须通过 SSH 连接到 CSUF ECS 服务器shell.ecs.fullerton.edu
才能使用 MariaDB 处理项目。它在OpenSSH
和PuTTY
以及 FTP中都运行良好FileZilla
。不幸的是,我认为这还不够好,想尝试一些 GUI 程序来编辑数据库,包括Sequeler
、gdaBrowser
、GSQL
,LibreOffice Base
以及可能还有更多我已经卸载但不记得的程序。
我相信我遇到的问题是当我尝试创建一个 SSH 密钥时引起的,在我看来,这个密钥是Sequeler
其他几个人所需要的。当时,我并不完全清楚这是什么,或者它是如何工作的,我只是按照 github 页面上的说明进行操作,了解如何创建一个并将其链接到 github 帐户。我尝试删除使用 ssh-keygen 创建的密钥(我相信 RSA 是类型的名称)并使用ssh-add -d ~/.ssh/id_rsa
和添加eval "$(ssh-agent -s)"
。我的教授建议还从同一文件夹中的known_hosts 文件中删除服务器指纹。其他一些论坛帖子让我认为某些“钥匙圈”程序或其他程序可能存在问题,但我似乎找不到其中任何一个。我在想,由于我安装的应用程序,我最终可能会得到一个 GNOME 密钥环或其他东西,但我似乎唯一拥有的是gpg-keyring
.奇怪的是,ecs.fullerton.edu
即使只是在 HTTP Web 浏览器中,我似乎也完全无法访问该域。我在想也许我的网关被远程服务器或其他什么东西阻止了。但奇怪的是我仍然可以在手机上使用 SSH。但使用我父母的Windows
桌面PuTTY
不起作用(我Arch Linux
在家庭网络上运行的笔记本电脑上)。
答案1
如果您无法通过 HTTP 或其他方式从使用相同公共 IP(您父母的和您自己的)的计算机连接到 ecs.fullerton.edu 域,则可能是大学防火墙阻止了您的 IP。
在这种情况下,您可以使用 VPN 或代理服务器(如果您有可用的代理服务器来尝试重新连接)。否则,请使用您的移动连接尝试向他们的 IT 服务台提交票证,看看是否可以解锁您的 IP。如果你做不到其中任何一个,那就去咖啡店或朋友家坐下来尝试联系。查找具有不同公共 IP 的不同网络。
关于您的 SSH 问题,您应该后退一步,尝试仅使用您的密码访问您的 shell.ecs.fullerton.edu 站点,因为这是最初起作用的(假设您的 IP 不再被阻止,如果这是案件 )。一旦工作正常,您就可以开始创建 SSH 密钥了。在你的 Arch 终端中:
ssh-keygen -t rsa -b 4096
这将为您生成一个 ssh 密钥对。将其复制到服务器:
ssh-copy-id -i /location/to/publicsshkey [email protected]
然后,尝试使用以下命令通过 ssh 连接到服务器:
ssh -i /location/to/privatesshkey [email protected]
如果上面的操作没有提示您输入密码,那么 ssh 公钥身份验证正在为您工作,您可以将该 ssh 私钥复制到您想要的任何 GUI 程序中,它应该可以工作。
如果您遇到问题,请ssh
记住,有一个-v
标志会打印有关连接的详细信息,以供调试之用。使用此选项,并附加额外的 vs(-vvv
最大)以获取更多信息。