Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠΎΠ±ΡΠ°Π½Ρ Π½Π°ΡΠΈ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠ΅ΠΌΡ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ SSH. ΠΠ· Π½Π΅Π΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊ:
- ΠΠΎΠ±Π°Π²ΠΈΡΡ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΠΊΡΠΎΡ ΠΊ Π»ΠΎΠ³ΠΈΠ½Ρ SSH
- ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ agent forwarding
- ΠΡΠΉΡΠΈ ΠΈΠ· Π²ΡΡΠ°Π²ΡΠ΅ΠΉ SSH ΡΠ΅ΡΡΠΈΠΈ
- Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΎΡΠΊΡΡΡΡΠΌ
- ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅ΡΡΠΈΠ΅ΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Ρ Π΄ΡΡΠ³ΠΎΠΌ (Π±Π΅Π· Zoom!)
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠΎΡΠ° ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ SSH
ΠΡΠΎΡΠΎΠΉ ΡΠ°ΠΊΡΠΎΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊ ΡΠ²ΠΎΠΈΠΌ SSH ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
- ΠΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΠΎΠΉ OpenSSH ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. Π ΡΠ΅Π²ΡΠ°Π»Π΅ 2020 Π³ΠΎΠ΄Π° Π² OpenSSH Π±ΡΠ»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ FIDO U2F (Universal Second Factor). ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ½Π°Ρ Π½ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π½ΠΎ Π΅ΡΡΡ Π½ΡΠ°Π½Ρ: ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡ Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ OpenSSH 8.2 ΠΈ Π²ΡΡΠ΅ ΡΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅Π²ΡΠ°Π»ΡΡΠΊΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π½ΠΈΡ
Π½ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ ΠΊΠ»ΡΡΠ΅ΠΉ. ΠΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
ssh βV
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ Π²Π΅ΡΡΠΈΡ SSH, Π° ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ β ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉnc [servername] 22
Π ΡΠ΅Π²ΡΠ°Π»ΡΡΠΊΡΡ Π²Π΅ΡΡΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄Π²Π° Π½ΠΎΠ²ΡΡ ΡΠΈΠΏΠ° ΠΊΠ»ΡΡΠ΅ΠΉ β 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
ΠΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊ Ρ ΠΎΡΡΡ Π²Π°ΠΌ Π²ΡΠ΅ Π΅ΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ.
- ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ PIV+PKCS11 ΠΈ Yubikey. ΠΠ»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ SSHD ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠ»ΡΡΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ½ΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄. ΠΠ° Yubico Π΅ΡΡΡ Π³Π°ΠΉΠ΄ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ U2F+SSH Ρ PIV/PKCS11 (Π°Π½Π³Π»). ΠΡΠΎ Π½Π΅ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΡΡΠΎ ΠΈ FIDO U2F, ΠΈ Ρ ΠΎΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΡΠΎΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ ΡΡΡΠ΄ΠΎΠ² ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΠΌΠ°Π³ΠΈΡ ΠΈΠΌ Π΄Π²ΠΈΠΆΠ΅Ρ.
- ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ yubikey-agent ssh-Π°Π³Π΅Π½Ρ. Π€ΠΈΠ»ΠΈΠΏΠΏΠΎ ΠΠ°Π»ΡΠΎΡΠ΄Π° Π½Π°ΠΏΠΈΡΠ°Π» SSH Π°Π³Π΅Π½Ρ Π΄Π»Ρ Yubikeys. ΠΠ½ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½ΠΎΠ²ΡΠΉ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ.
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Touch ID ΠΈ sekey. Sekey ΡΡΠΎ SSH Π°Π³Π΅Π½Ρ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΎΠ½ Ρ ΡΠ°Π½ΠΈΡ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ Π² Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΌ Π°Π½ΠΊΠ»Π°Π²Π΅ MacβΠ° ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Touch ID Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ°.
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Single Sign On SSH. Π― Π½Π°ΠΏΠΈΡΠ°Π» ΡΡΡΠΎΡΠΈΠ°Π» Π΄Π»Ρ ΠΏΠΎΠΌΠΎΡΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° (Π°Π½Π³Π»). ΠΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² single sign on SSH ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠΉ β Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΌΡΠ»ΡΡΠΈΡΠ°ΠΊΡΠΎΡΠ½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ (MFA).
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ agent forwarding
Π SHH agent forwarding ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡ ΡΠ·Π»Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ SSH Π°Π³Π΅Π½ΡΡ Π²Π°ΡΠ΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ SSH Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ agent forwarding (ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π· ssh -A), Π² ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π΄Π²Π° ΠΊΠ°Π½Π°Π»Π°: Π²Π°ΡΠ° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½Π°Ρ ΡΠ΅ΡΡΠΈΡ ΠΈ ΠΊΠ°Π½Π°Π» Π΄Π»Ρ agent forwarding. Π§Π΅ΡΠ΅Π· ΡΡΠΎΡ ΠΊΠ°Π½Π°Π» Unix-ΡΠΎΠΊΠ΅Ρ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π²Π°ΡΠΈΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ SSH-Π°Π³Π΅Π½ΡΠΎΠΌ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΡΠ·Π»ΠΎΠΌ. ΠΡΠΎ ΡΠΈΡΠΊΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ root Π΄ΠΎΡΡΡΠΏΠΎΠΌ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π°ΡΠ΅ΠΌΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ SSH-Π°Π³Π΅Π½ΡΡ ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π²ΡΠ΄Π°Π²Π°ΡΡ ΡΠ΅Π±Ρ Π² ΡΠ΅ΡΠΈ Π·Π° Π²Π°Ρ. ΠΠΎΠ»ΡΠ·ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ SSH-Π°Π³Π΅Π½ΡΠΎΠΌ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° Open SSH, Π²Ρ Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΠ·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΡΡΠΎ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ. ΠΠ°Π»ΠΈΡΠΈΠ΅ U2F ΠΊΠ»ΡΡΠ° (ΠΈΠ»ΠΈ Sekey) ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²Π°ΡΠΈΠΌ SSH Π°Π³Π΅Π½ΡΠΎΠΌ ΠΈΠ·Π²Π½Π΅.
ΠΠ°ΠΆΠ΅ Ρ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΡΠ΄Π΅Ρ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΈΠ΄Π΅Π΅ΠΉ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ agent forwarding. ΠΠ΅ ΡΡΠΎΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠΌ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΡΡΠΈΠΈ β ΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ agent forwarding ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅ΡΡΠΈΠΈ.
ΠΡΡ ΠΎΠ΄ ΠΈΠ· Π·Π°Π²ΠΈΡΡΠ΅ΠΉ ΡΠ΅ΡΡΠΈΠΈ
ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠΈ, Π±Π΅ΡΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΈΠ»ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π²Π²ΠΎΠ΄ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ β Π²ΡΠ΅ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ ΡΠ°Π·ΡΡΠ²Π° SSH-ΡΠ΅ΡΡΠΈΠΈ.
ΠΠ°ΠΊΠΎΠ½ΡΠΈΡΡ Π·Π°Π²ΠΈΡΡΡΡ ΡΠ΅ΡΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΉΡΠΈ ΠΏΡΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΡΠΈ. Π ΡΠ²ΠΎΠΉ .ssh/config Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ServerAliveInterval 5 ServerAliveCountMax 1
ssh Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ echo ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡ ΡΠ·Π»Ρ ΠΊΠ°ΠΆΠ΄ΡΠ΅ ServerAliveInterval ΡΠ΅ΠΊΡΠ½Π΄ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ServerAliveCountMax ΡΡ ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΎΡΠ²Π΅ΡΠ°, ssh Π·Π°ΠΊΠΎΠ½ΡΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ°ΡΡΡ ΠΈ Π²ΡΠΉΠ΄Π΅Ρ ΠΈΠ· ΡΠ΅ΡΡΠΈΠΈ.
- ΠΡΡΠ²Π°ΡΡΡΡ ΠΈΠ· ΡΠ΅ΡΡΠΈΠΈ. ssh ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» ~ (ΡΠΈΠ»ΡΠ΄Π°) ΠΊΠ°ΠΊ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ. ΠΠΎΠΌΠ°Π½Π΄Π° ~. Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ ΠΎΡΠΊΡΡΡΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²Π°Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π». (Π£ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.) ΠΠΎΠΌΠ°Π½Π΄Π° ~? Π²ΡΠ²Π΅Π΄Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π² ΡΡΠΎΠΉ ΡΠ΅ΡΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠΌΠ΅ΠΉΡΠ΅ Π²Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΡΡΠΎΠ±Ρ Π½Π°Π±ΡΠ°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» ~ Π½Π° ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°Ρ , ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ ~ Π΄Π²Π°ΠΆΠ΄Ρ.
ΠΠΎΡΠ΅ΠΌΡ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ»ΡΡΠ°ΡΡΡΡ Π·Π°Π²ΠΈΡΡΠΈΠ΅ ΡΠ΅ΡΡΠΈΠΈ? ΠΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΡΠ΅Π΄ΠΊΠΎ Π΄Π²ΠΈΠ³Π°Π»ΠΈΡΡ Ρ ΠΌΠ΅ΡΡΠ° Π½Π° ΠΌΠ΅ΡΡΠΎ. ΠΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ Π½ΠΎΡΡΠ±ΡΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ IPv4 ΡΠ΅ΡΡΠΌΠΈ WiFi, Π²Π°Ρ IP-Π°Π΄ΡΠ΅Ρ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ SSH ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° TCP ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, Π° ΡΠ΅, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠΊΡ ΡΠΎ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌ IP-Π°Π΄ΡΠ΅ΡΠΎΠΌ, Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π· ΠΊΠ°ΠΊ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΡΠΌΠΈ, Π²Π°ΡΠΈ SSH ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠΏΡΡΠΊΠ°ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΎΠΊΠ΅ΡΠ° ΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅ΡΡΡΡΡΡ ΡΠ°ΠΌΠΈ. ΠΠΎΠ³Π΄Π° ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²Π°Ρ IP-Π°Π΄ΡΠ΅Ρ, Π²Π°ΡΠ΅ΠΌΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΌΡ ΡΡΠ΅ΠΊΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΡ ΡΡΠΎΠ±Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΏΠΎΡΠ΅ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°. ΠΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠ΅ΡΠ΅Π²ΡΠ΅ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΊΠΈ, ΠΌΡ Π½Π΅ Ρ ΠΎΡΠΈΠΌ ΡΡΠΎΠ±Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ·Π»ΠΎΠ² Π² TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ ΠΏΡΠ΅ΡΠ²Π°Π» Π΅Π³ΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ°Π½ΠΎ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π½Π°ΠΊΠΎΠ½Π΅Ρ ΡΠ΄Π°ΡΡΡΡ. Π’Π΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ, Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ ΡΠ΅ΡΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π²ΡΡΠ°Π²ΡΠ΅ΠΉ. IPv6 Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΡΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΠΉ Π°Π΄ΡΠ΅Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΌΠ΅Π½Ρ ΡΠ΅ΡΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½Π΅Ρ Π±ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΆ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.
ΠΠ°ΠΊ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΎΡΠΊΡΡΡΡΠΌ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ·Π»Π΅
ΠΡΡΡ Π΄Π²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ΅ΡΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π½Π΅Π½Π°Π΄ΠΎΠ»Π³ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡΡΡ.
1. ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ ΡΠΏΠ°Π΄Π°Π΅Ρ, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΡΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ Mosh. ΠΡΠΎ Π·Π°ΡΠΈΡΠ΅Π½Π½Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ SSH-ΡΡΠΊΠΎΠΏΠΎΠΆΠ°ΡΠΈΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π° ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ°Π½Π°Π» Π½Π° Π²ΡΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠΈΠΈ. Π’Π°ΠΊ Mosh ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ, ΠΎΡΠ΅Π½Ρ ΡΡΠΎΠΉΠΊΠΈΠΉ ΠΈ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΉ, ΠΊΠ°Π½Π°Π», ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π²ΡΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, ΠΈ ΡΠΌΠ΅Π½Ρ IP-Π°Π΄ΡΠ΅ΡΠ° Π²Π°ΡΠ΅Π³ΠΎ Π½ΠΎΡΡΠ±ΡΠΊΠ°, ΠΈ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ ΡΠ°Π·ΡΡΠ²Ρ ΡΠ΅ΡΠΈ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅, ΠΈ Π²ΡΠ΅ ΡΡΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠ°Π³ΠΈΠΈ UDP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΌΡ Mosh ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Mosh Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ ΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, ΠΈ ΠΎΡΠΊΡΡΡΡ ΠΏΠΎΡΡΡ 60000-61000 Π΄Π»Ρ Π½Π΅ΡΠ²ΡΠ·Π½ΠΎΠ³ΠΎ UPD-ΡΡΠ°ΡΠΈΠΊΠ° Π΄ΠΎ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ
ΠΎΡΡΠ°. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π΄Π»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ mosh user@server
.
Mosh ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠΊΡΠ°Π½ΠΎΠ² ΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΡ, ΡΡΠΎ Π΄Π°Π΅Ρ Π΅ΠΌΡ ΡΡΠ΄ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°ΡΡΠΈΠΌ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ SSH. ΠΡΠ»ΠΈ Π½Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΡΠ°Π½Ρ ΠΈ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ, ΡΠΎ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠ΅ΡΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ SSH Π±ΡΠ΄Π΅Ρ Π±ΡΡΠ΅ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π²ΡΠ΅ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ, Mosh Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΡΠ΅ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠ°Π΄Ρ ΠΎΠΊΠ½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ.
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ tmux
ΠΡΠ»ΠΈ Π²Π°ΠΌ Ρ
ΠΎΡΠ΅ΡΡΡ Β«ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡ ΠΈ ΡΡ
ΠΎΠ΄ΠΈΡΡ ΠΊΠΎΠ³Π΄Π° Π²Π·Π΄ΡΠΌΠ°Π΅ΡΡΡΒ» ΠΈ Π΄Π΅ΡΠΆΠ°ΡΡ ΡΠ΅ΡΡΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ·Π»Π΅, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ tmux
. Π― ΠΎΠ±ΠΎΠΆΠ°Ρ tmux ΠΈ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΠΈΠΌ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ. ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ SSH-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΠ²Π°Π»ΠΎΡΡ, ΡΠΎ ΡΡΠΎΠ±Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ Π² ΡΠ²ΠΎΡ tmux ΡΠ΅ΡΡΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΈ Π²Π²Π΅ΡΡΠΈ tmux attach
. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² Π½Π΅ΠΌ Π΅ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ΄Π΅ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ Π²Π½ΡΡΡΠΈΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌ Π² iOS ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅, ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π΅Π»ΠΈΡΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°ΠΌΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΠ±ΡΡ ΠΏΡΠΈΡΠΊΡΠ°ΡΠΈΡΡ ΡΠ²ΠΎΠΉ tmux Ρ ΠΏΠΎΠΌΠΎΡΡΡ Byobu, ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ ΠΊΠΎΡΠΎΡΡΠΉ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠ°Π΅Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ tmux ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² Π½Π΅Π³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΡ. Byobu ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Ubuntu, ΠΈ Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π° Mac ΡΠ΅ΡΠ΅Π· Homebrew.
Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅ΡΡΠΈΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Ρ Π΄ΡΡΠ³ΠΎΠΌ
ΠΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π° Π²Π°ΡΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΡΠ΅ΡΡΠΈΡ SSH Ρ ΠΊΠ΅ΠΌ-ΡΠΎ, ΠΊΠΎΠ³ΠΎ Π½Π΅Ρ Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ Π²Π°ΠΌΠΈ ΠΊΠΎΠΌΠ½Π°ΡΠ΅. tmux ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ°ΠΊΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ! ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π³ΠΎΠ²:
- Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ tmux ΡΡΠΎΠΈΡ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠ·Π»Π΅-Π±Π°ΡΡΠΈΠΎΠ½Π΅, Π»ΠΈΠ±ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
- ΠΠ°ΠΌ ΠΎΠ±ΠΎΠΈΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΏΠΎ SSH ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ΄ΠΈΠ½ Π°ΠΊΠΊΠ°ΡΠ½Ρ.
- ΠΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΡΡΡΠΈΡΡ tmux ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ tmux ΡΠ΅ΡΡΠΈΡ.
- ΠΡΡΠ³ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΡΡΡΠΈΡΡ tmux attach
- ΠΡΠ°Π»Ρ! Π£ Π²Π°Ρ ΠΎΠ±ΡΠΈΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π».
ΠΡΠ»ΠΈ Π²Π°ΠΌ Ρ
ΠΎΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ·ΠΎΡΡΠ΅Π½Π½ΡΡ
ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
tmux ΡΠ΅ΡΡΠΈΠΉ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ tmate, ΡΡΠΎ ΡΠΎΡΠΊ tmux ΠΊΠΎΡΠΎΡΡΠΉ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΡΠ΅ ΡΠ΅ΡΡΠΈΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com