以下是我们更有效地使用SSH的一些最好的提示和技巧。本帖子将介绍如何执行以下操作:
升级您的OpenSSH并使用安全密钥。在2020年2月,OpenSSH增加了对FIDO U2F(通用第二因子)安全密钥的支持。这是一个很棒的新功能,但有一个警告:因为此升级为安全密钥引入了新的密钥类型,所以只有在客户端和服务器都升级到OpenSSH 8.2+的情况下,您才能使用安全密钥。您可以使用ssh-V检查您的客户端版本,使用NC[ServerName]22检查远程sshd版本。
添加了两种新的密钥类型-ecdsa-ska和ed25519-sk(以及相应的证书类型)。要生成密钥文件,请插入安全密钥并运行:
这将创建绑定到您的U2F设备的公钥和私钥。当安全密钥被激活时,U2F设备上的私钥被用来解密盘上私钥“密钥句柄”。
OpenSSH还支持一种不同风格的生成SK类型的密钥:驻留密钥。使用驻留密钥方法,密钥句柄存储在U2F设备上。这样,当您需要时,您将始终将其放在安全密钥上。使用以下选项创建驻留密钥:
然后,要将密钥句柄重新放回新计算机的内存中,请插入安全密钥并运行:
使用PIV+PKCS11和Yubikey。如果您想要连接到运行旧版本sshd的计算机,您仍然可以使用安全密钥-使用不同的方法。YUBICO有一个使用U2F+SSH和PIV/PKCS11的指南。这与FIDO U2F不是一回事。它很管用,但使用起来很神秘。
使用定制的Yubikey-agent ssh-agent。Filippo Valsorda为Yubikey写了一个SSH代理。它是全新的,功能很少。
使用Touch ID和SEKEY。Sekey是一个开源的SSH代理,它将私钥存储在Mac的安全飞地中,并通过Touch ID提供签名功能。
使用单点登录SSH。我写了一个教程来帮助你设置这个。单点登录SSH的一个优势是,您可以利用身份提供商的安全策略-包括多因素身份验证(MFA)支持。
SSH中的代理转发允许远程主机访问本地计算机的SSH代理。当您在打开代理转发的情况下使用SSH(通常使用ssh-A)时,连接将有两个通道:交互式会话和用于代理转发的通道。本地SSH代理创建的Unix域套接字通过此通道连接到远程主机。这是有风险的,因为在远程计算机上具有root访问权限的用户可以访问您的本地SSH代理,并可能冒充您……。
即使有了这样的预防措施,谨慎使用代理转发仍然是个好主意。不要在所有会话中都使用它-当您知道特定的SSH会话需要它时才使用它。
SSH会话通常会由于网络中断、程序失控或锁定键盘输入的终端转义序列之一而挂起。🤦♂️。
SSH将通过每隔ServerAliveInterval秒向远程主机发送回应来检查连接。如果发送的回显超过ServerAliveCountMax而没有响应,则ssh将超时并退出。
中断会议。默认情况下,SSH包含转义字符~。命令~。关闭打开的连接并将您带回终端。(您只能在新行输入转义序列。)~?列出了在会话期间可以使用的所有命令。在国际键盘上,您可能需要按两次~键才能发送~字符。
为什么会出现停滞的会话?在互联网发明时,计算机并没有太多的移动。当您使用笔记本电脑在IPv4 WiFi网络之间移动时,您的IP地址会发生变化。因为SSH依赖于TCP连接,而TCP连接依赖于具有稳定IP地址的端点,所以每当您更改网络时,您的SSH连接都将成为孤立的并有效地丢失。当您的IP地址更改时,您的网络堆栈需要一段时间才能发现连接具有.。
当您在网络之间移动或想要暂时断开连接时,这里有两种不同的方法来保持会话正常进行:
如果您确实需要一个即使在网络之间移动也不会断开的连接,请使用MOSH-移动外壳。MOSH是一种安全外壳,它使用SSH进行握手,然后为会话切换到自己的加密通道。这个独立的通道非常有弹性。由于UDP的魔力和Mosh使用的同步协议,它可以处理断开的互联网连接、笔记本电脑IP地址的更改、主要的网络延迟等等。
要使用MOSH,您需要将其安装在客户端和服务器上,并为进入远程主机的UDP通信打开端口60000-61000。然后只需使用mosh user@server进行连接。
MOSH在屏幕和击键级别上运行,这使它比SSH有很多优点,SSH可以传送Stan的二进制流