有时我需要 ssh 到一个新的远程服务器并立即修复某些问题,而无需 ssh 尝试在我的主机上查找任何私钥。它通常会在此时停滞:
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure. Minor code may provide more information
Credentials cache file '/tmp/blah' not found
debug1: Unspecified GSS failure. Minor code may provide more information
Credentials cache file '/tmp/blah2' not found
debug1: Unspecified GSS failure. Minor code may provide more information
有没有一种方法可以指定 ssh 立即执行基于密码的身份验证?
答案1
ssh -o PreferredAuthentications=password,keyboard-interactive,gssapi-with-mic,hostbased,publickey [email protected]
~/.ssh/config
如果您不想对允许密码访问的任何服务器进行密钥访问,也可以输入此设置。
答案2
它试图在您的计算机上找到私钥;远程计算机将拥有公钥。远程计算机永远不应该拥有您的私钥(除非它是受您控制的计算机)。
看起来您已经打开了 GSS Auth,您可以从命令行使用类似以下命令将其关闭。ssh -o GSSAPIAuthentication=no [email protected]
如果可行,通过在文件(或系统范围文件)部分GSSAPIAuthentication no
下添加,关闭默认连接可能会更容易。如果您需要它用于本地服务器,则可以添加一个部分并将其重新打开。Host *
~/.ssh/config
ssh_config
Host *.my_company.com
答案3
如果你使用以下命令连接到服务器
那么您看到的问题很可能是由客户端无法解析服务器的主机名引起的。一旦客户端可以解析服务器的主机名,您仍然会收到错误消息,但没有名称服务超时导致的延迟。