我可以快速进行 SSH 身份验证吗?

Posted

技术标签:

【中文标题】我可以快速进行 SSH 身份验证吗?【英文标题】:Can I make SSH Authentication Lightning Fast? 【发布时间】:2011-09-15 18:00:39 【问题描述】:

我在一天中多次在终端窗口中使用 SSH。

我记得读过一篇关于重用单个连接的方法,这样就不必在每次向同一主机建立另一个请求时都进行 TCP 和 SSH 握手。

谁能指点我一个链接或描述如何建立一个共享的 ssh 连接,以便后续与同一主机的连接能够快速连接?

谢谢。

【问题讨论】:

【参考方案1】:

如果你想让终端保持打开状态,最简单的方法是产生 I/O(“tail -f”或“while [ -d . ]; cat /etc/loadavg; sleep 3; done”)。

如果您想改进连接握手,我使用的一种方法是在您的 sshd_config 中添加“UseDNS no”。

【讨论】:

哦,删除未使用的身份验证(gssapi-with-mic 非常慢)。你也可以用“ssh -v”检查你的bootlenech是什么 处理(令人沮丧但频繁)由于强制超时、不活动等导致的 ssh 断开连接:登录后(ssh hostname),立即运行screen 会话(即screen -S working-on-XYZ bash -l)。此外,我将我的远程~/.screenrc 设置为包含类似:caption always '%3n %H: %t // %c:%s',这可能会强制 ssh 会话“保持活动状态”(由于滴答时钟远程运行,在本地显示)。无论如何,如果我的 ssh 由于任何原因断开连接,我仍然可以随时重新登录并重新连接到我的屏幕会话 (screen ls / screen -r working-on-XYZ)。【参考方案2】:

回答我自己的问题。 Improving SSH (OpenSSH) connection speed with shared connections 描述了使用“ControlPath”配置设置。

更新:对于打开和关闭的连接,通常将ControlPersist 4h 之类的设置添加到您的 ~/.ssh/config 中。见this post about SSH productivity tips。

【讨论】:

以上是关于我可以快速进行 SSH 身份验证吗?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用用于登录的 ssh 密钥在第三方应用程序中对用户进行身份验证?

Jenkins Publish over ssh 身份验证失败,使用私钥

仅针对特定用户的 SSH 身份验证绕过密码身份验证

无法通过新 GitLab 容器上的 ssh 密钥进行身份验证

SSH 使用公钥(不是私钥)进行身份验证

我可以使用 JWTAuthentication 两次进行登录身份验证吗?