在 Ubuntu 23.10 上,当我打开终端并 ssh 到主机时,我会看到如下内容:
ssh hostname.here.com
它会立即让我登录(即使是在我第一次启动计算机时,而不是在我在会话中第一次登录之后)。我的文件中也没有主机的详细信息~/.ssh/config
。
现在我需要计算出该主机的用户名/密码(可能还有密钥文件名)。我有一条记录,但有点混乱(到目前为止,没有用户名/密码组合有效 - 但那是另一回事)。
我看过 Seahorse,但它似乎没有列出任何对主机来说明显的内容。
我如何至少找出 Ubuntu 用于登录的用户名和/或密钥文件?Ubuntu 还有其他东西可以用来记住终端登录吗?
使用
-v
optipn(1、2、3、4 或 5 次以获得越来越多的详细信息):将显示有关连接的几乎所有细节。包括用户名、使用的加密(以及在哪里找到用户;并且在该位置您还应该找到密码)
用户名可以来自
.ssh/config
但可以通过设置覆盖SSH_DEFAULT_USER
(通常在.bashrc
.用户名将以以下形式显示在开头的某处
(
-v
也会向用户显示)如果您不提供用户,它可能正在使用您当前的用户。否则应该会出错。在这种情况下,它还会要求您输入密码。
我没能读懂你问题中的这句话:
因此,如果是这种情况,这个答案将无济于事,因为它假设在某个时刻至少在客户端上完成了“某事”;但是,我会为那些在使用公钥身份验证时遇到相同问题的人留下这个答案。
您很可能正在使用公钥身份验证登录。
假设已在远程主机上使用(这不是唯一的方法)设置公钥身份验证,请查看;
ssh-copy-id
的内容~/.ssh/authorized_keys
应该至少有一个条目如下所示:user@hostname
您的本地用户名/主机名在哪里(rsa
可能是其他名称)。由于您在没有指定用户名的情况下进行连接,除非其中的某些内容
~/.ssh/config
覆盖了此设置,否则会话的用户名将默认为本地用户的用户名;因此,您可能正在使用本地用户的用户名登录服务器(为了确定这一点,您可以通过在whoami
登录远程主机时运行来列出远程主机上的远程用户的用户名)。至于远程主机上的远程用户的密码,它不会以明文形式存储在任何地方(希望如此),您只能尝试猜测它,但如果恢复它的目的只是跟踪它/登录服务器从其他机器上获取而不为这些机器设置公钥身份验证,您也可以将其更改为您想要的任何内容:
此时您应该已经弄清楚了一切,并且您应该能够使用以下命令从其他计算机登录到服务器:
替换
user
为远程用户的用户名并输入新密码。