Teleport CLI

Π’Π΅Π»Π΅ΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами Π² Ρ‚ΠΎΠΌ числС ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ для OS, Π½ΠΎ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ½Π΅ трСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ авторизация для использования Π² ΠΊΠΎΠ΄Π΅ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎ строкой Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ всСго ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ tar.gz Ρ„Π°ΠΉΠ» ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠΈ.

Π’Π°ΠΆΠ½ΠΎ

Π‘Π½Π°Ρ‡Π°Π»Π° слСдуСт ΡƒΠ·Π½Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ самого сСрвиса teleport Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π² нашСй ΠΈΠ½Ρ„Ρ€Π΅ ΠΈ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Ρ€ΠΎΠ²Π½ΠΎ Ρ‚Ρƒ ΠΆΠ΅. Π”Π°ΠΆΠ΅ нСбольшиС расхоТдСния приводят ΠΊ нСсовмСстимости API.

tsh

Основная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ· CLI это tsh.

АутСнтификация Π² teleport

./tsh login --proxy=teleport.host --user=mylogin --skip-version-check --auth=local --ttl 5256000

1

Если Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ -o <имя_Ρ„Π°ΠΉΠ»Π°> Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ сгСнСрирован тСкстовый Ρ„Π°ΠΉΠ» содСрТащий Π² сСбС всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ сСртификаты для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π΅Π»Π΅ΠΏΠΎΡ€Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ потрСбуСтся ΠΏΠΎΠ·ΠΆΠ΅ для Teleport. Golang.

Настройка ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² ~/.tsh/. Из интСрСсного Ρ‚Π°ΠΌ находится Ρ„Π°ΠΉΠ» current-profile ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ Ссли настроСно ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ‚Π΅Π»Π΅ΠΏΠΎΡ€Ρ‚Ρƒ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

env

./tsh env --proxy teleport.***:443

Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ список ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π΄ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этим proxy.

ls

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список доступных Ρ‡Π΅Ρ€Π΅Π· этот proxy хостов.

❯ ./tsh ls --proxy teleport.***.ru:443
 
Node Name                                                     Address    Labels                                                                                                                                                                
------------------------------------------------------------- ---------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
klktest-ch-1.******.******.mts.ru ⟡ Tunnel   bios=c4b72c42-29c3-d71d-0a16-954d87a1a037,clickhouse-l3=true,hostname=klktest-ch-1,paas-l1=true,stand_slug=****-unix-inside-0300s2,type=dataops,unix-admin=true 

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ поиска ΠΌΠΎΠΆΠ½ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ:

./tsh ls --proxy teleport.***.ru:443 --query='labels["type"] == "dataops"'

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ==, !=, && ΠΈ ||.

ssh

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ хосту Π·Π° Ρ‚Π΅Π»Π΅ΠΏΠΎΡ€Ρ‚ΠΎΠΌ. НапримСр Ρ‚Π°ΠΊ:

./tsh ssh user@<some_host_from_tsh_ls>.ru

config

ΠŸΠΎΠΊΠ°ΠΆΠ΅Ρ‚ кусочСк ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° ~/.ssh/config ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ссли Ρ‚ΡƒΠ΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΈΠ΄Π΅Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΡΠΏΠΎΠ»Π·ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ‚Π΅Π»Π΅ΠΏΠΎΡ€Ρ‚ хостов ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ssh вмСсто ./tsh ssh. Но Ρƒ мСня Π½Π΅ завСлось. ΠŸΠΎΡ…ΠΎΠΆΠ΅ Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ эти записи Π² DNS для Π½Π°Ρ‡Π°Π»Π°.

Footnotes

  1. auth=local Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ инсталляции. ↩