SSH小技巧

本文汇总了我们的最佳实践,以更有效地使用SSH。从中您将学习如何:

  • 在SSH登录中添加第二个因素
  • 安全使用代理转发
  • 注销SSH会话
  • 保持永久终端开放
  • 与朋友共享远程终端会话(不缩放!)

为您的SSH添加第二个因素


可以通过五种不同的方式将第二个身份验证因素添加到您的SSH连接中:

  1. 更新您的OpenSSH并使用加密密钥。2020年2月,OpenSSH添加了对FIDO U2F(通用第二因素)加密密钥的支持。这是一项很棒的新功能,但有一个细微差别:只有那些升级到OpenSSH 8.2版或更高版本的客户端和服务器才能使用加密密钥,因为2月份的更新为其引入了新的密钥类型。使用该命令,ssh –V可以使用以下命令检查SSH的客户端版本和服务器版本nc [servername] 22

    2月版本中增加了两种新类型的密钥-ecdsa-sk和ed25519-sk(以及相应的证书)。要生成密钥文件,只需插入您的加密密钥并运行以下命令:

    $ ssh-keygen -t ecdsa-sk -f ~/.ssh/id_ecdsa_sk

    U2F . U2F — .

    , .

    - OpenSSH -sk-. U2F . - :

    $ ssh-keygen -t ecdsa-sk -O resident -f ~/.ssh/id_ecdsa_sk

    , , :

    $ ssh-add -K

    .
  2. PIV+PKCS11 Yubikey. SSHD . Yubico U2F+SSH PIV/PKCS11. FIDO U2F, , , .
  3. yubikey-agent ssh-. SSH Yubikeys. .
  4. Touch ID sekey. Sekey SSH , Mac’ Touch ID .
  5. Single Sign On SSH. . single sign on SSH — (MFA).

agent forwarding


SHH代理转发允许远程主机访问本地设备的SSH代理。当您在启用代理转发的情况下使用SSH(通常通过ssh -A)时,连接中将有两个通道:交互式会话和代理转发通道。通过此通道,由本地SSH代理创建的Unix套接字连接到远程主机。这是一种冒险的方法,因为在远程设备上具有root用户访问权限的用户可以访问您的本地SSH代理,并有可能在网络上模拟您。使用Open SSH套件中的标准SSH代理,您甚至都不知道发生了这种情况。拥有U2F密钥(或Sekey)将帮助您有效地阻止任何从外部使用SSH代理的尝试。

即使采取了这种预防措施,也应尽可能少使用代理转发。您不应该在每个会话中都使用它-仅在确定当前会话需要它时才使用代理转发。

退出挂机会话


网络中断,程序不受控制的行为或阻止键盘输入的转义序列都是SSH会话中断的所有可能原因。

有几种方法可以结束挂起的会话:

  1. 网络中断时自动退出。在.ssh / config中,您需要添加以下内容:

    ServerAliveInterval 5
    ServerAliveCountMax 1

    ssh将每隔ServerAliveInterval秒将回显发送到远程主机,以验证连接。如果更多ServerAliveCountMax回声未收到响应,则ssh将超时终止连接并退出会话。
  2. . ssh ~ () . ~. . ( .) ~? . , ~ , ~ .

? . IPv4 WiFi, IP- . SSH TCP , , , IP-, , SSH . IP-, . , TCP- . . , . IPv6 , . , .


在不同网络之间切换时或要短时间断开连接时,有两种不同的方法来维护连接。

1.使用MoshEternal终端

如果确实需要即使在网络之间切换时也不会消退的连接,请使用Mosh移动外壳。这是一个安全的外壳程序,它首先使用SSH握手,然后在会话期间切换到其自己的加密通道。因此,Mosh创建了一个单独的,非常稳定和安全的通道,能够承受Internet中断,更改笔记本电脑的IP地址,严重的网络中断等,这一切都归功于UDP连接的神奇之处,以及Mosh同步协议。

要使用Mosh,您需要将其安装在客户端和服务器上,并打开端口60000-61000,以断开到远程主机的UPD通信。将来,将足以用于连接mosh user@server

Mosh在屏幕和按键级别上运行,与在客户端和SSH服务器之间转发标准输入和输出的二进制流相比,Mosh具有许多优点。如果只需要同步屏幕和按键,那么以后恢复中断的连接将变得更加容易。尽管SSH将缓冲并发送发生的所有事件,但Mosh仅需要缓冲击键并将终端窗口的最后一帧与客户端同步。

2.使用tmux

如果您想“随时随地来去去”并将终端会话保持在远程主机上,请使用终端多路复用器 tmux我爱tmux,并不断使用它。如果您的SSH连接中断,则只需重新连接并输入以返回到tmux会话tmux attach此外,它具有出色的功能,例如,终端内的选项卡和面板(类似于iOS终端中的选项卡)以及与其他人共享终端的功能。

有些人喜欢用Byobu装饰tmux,该软件包可大大提高tmux的可用性并为其添加许多键盘快捷键。Byobu随Ubuntu一起提供,很容易通过Homebrew在Mac上安装。

与朋友共享远程终端会话


有时,当在服务器上调试复杂的问题时,您可能想与不在同一个房间的某人共享SSH会话。tmux非常适合这样的任务!仅需几个步骤就足够了:

  1. 确保tmux位于堡垒主机上或要使用的服务器上。
  2. 你们两个都需要使用一个帐户通过SSH连接到设备。
  3. 你们其中之一必须启动tmux才能启动tmux会话。
  4. 另一个应该运行tmux attach
  5. 瞧!您有一个公用终端。

如果您想要更复杂的多用户tmux会话,请尝试tmate,这是tmux的一个分支,可以大大简化联合终端会话。

All Articles