рдУрдкрди рд╡реЗрдмрд┐рдирд╛рд░: "рдПрд╕рдПрд╕рдПрдЪ / рдПрдирд╕реА / рд╕реЛрдХреЗрдЯ: рдЯрд┐рдкреНрд╕ рдПрдВрдб рдЯреНрд░рд┐рдХреНрд╕"

рд╕рднреА рдХреЛ рд╢реБрдн рджрд┐рди!

рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рд╣рдо рдЕрдЧрд▓реЗ рд▓рд┐рдирдХреНрд╕ рдкреНрд░рд╢рд╛рд╕рдХ рд╕рдореВрд╣ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╣рдордиреЗ рдХрдИ рдЖрдпреЛрдЬрди рдХрд┐рдПред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ "рдПрд╕рдПрд╕рдПрдЪ / рдПрдирд╕реА / рд╕реЛрдХреЗрдЯ: рдЯрд┐рдкреНрд╕ рдПрдВрдб рдЯреНрд░рд┐рдХреНрд╕" рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдЦреБрд▓рд╛ рд╕рдмрдХ рд╣реИред рдЗрд╕ рдкрд░ рд╣рдореЗрдВ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ ssh рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдФрд░ рдорд┐рд╢рдиред рд╣рдордиреЗ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА: рджреВрд░рд╕реНрде, рд╕реНрдерд╛рдиреАрдп рдмрдВрджрд░рдЧрд╛рд╣ рдЕрдЧреНрд░реЗрд╖рдг, рд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░рддрд┐рд▓рд┐рдкрд┐, рдореЛрдЬреЗ рдкреНрд░реЙрдХреНрд╕реА, рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реАред рд╣рдордиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЖрднрд╛рд╕реА рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛ рдореЗрдВ рдПрдирд╕реА рдФрд░ рд╕реЛрд╕рд╛рдЗрдЯ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рд╡реЗрдмрд┐рдирд╛рд░ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдЕрдиреБрднрд╡реА рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ рд╡реНрд▓рд╛рджрд┐рдореАрд░ рдбреНрд░реЛрдЬрд╝рдбреЗрддреНрд╕реНрдХреА рдиреЗ рдХрд┐рдпрд╛ рдерд╛, рдЬреЛ рдХрд┐ letundra.com, exposcan.ru, crispmessenger.com рдкрд░ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рдбреЗрд╡рд▓рдкрд░ рд╣реИред

рд╣рдо рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдореЗрдВ рдкрд┐рдЫрд▓реА рдШрдЯрдирд╛ рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рд▓рд╛рддреЗ рд╣реИрдВред


рдПрд╕рдПрд╕рдПрдЪ рдХреНрдпрд╛ рд╣реИ рдпрд╛рдж рдХрд░реЗрдВ

SSH (рд╕рд┐рдХреНрдпреЛрд░ рд╢реЗрд▓) рдПрдХ "рд╕рд┐рдХреНрдпреЛрд░ рд╢реЗрд▓" рд╣реИ, рдЬреЛ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди-рд╕реНрддрд░реАрдп рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рд╕реБрд░рдВрдЧ рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдХреЛ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдЕрдкрдиреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ, SSH рдЯреЗрд▓рдиреЗрдЯ рдФрд░ рд░рд╛рдЧрд┐рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЙрдирд╕реЗ рдЕрд▓рдЧ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рднреА рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕рдВрдЪрд╛рд░рд┐рдд рдкрд╛рд╕рд╡рд░реНрдб рд╕рд╣рд┐рдд рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рддрд╛ рд╣реИред SSH-2 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ RFC 4251 рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред

рдЖрдЗрдП, рдорд╛рдирдХ рдФрд░ рдЧреИрд░-рдорд╛рдирдХ рджреЛрдиреЛрдВ, рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧреЛрдВ рдХреЛ рджреЗрдЦреЗрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдЯреИрдВрдб рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛:



рд╕реНрдЯреИрдВрдб рдЪрд╛рд░ рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдХреЗ рдкреАрдЫреЗ рд╣реИрдВред рд╣рдо рдиреЛрдб -1 рдорд╢реАрди рд╕реЗ рд╕рднреА рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗред

SSH рдХреБрдВрдЬреА рдмрдирд╛рдирд╛

SSH рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЙрдкрдпреБрдХреНрдд рд╣реИ, рдЬреЛ рдХрд┐ рдХрд┐рд╕реА рднреА рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рдореЗрдВ рд╣реИ:

ssh-keygen -t RSA -N otuslinux -f ~/.ssh/otus 

  • -t - рдЬреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП;
  • -N - рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА (рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реНрдХ рдпрджрд┐ рдЖрдкрдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдХреБрдВрдЬреА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рд╡рд┐рднрд┐рдиреНрди ssh-keygen рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВ);
  • -f - рдХрд┐рд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рдХреА рдХреЛ рд╕реЗрд╡ рдХрд░рдирд╛ рд╣реИред

SSH ssh-server рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИ

рдЖрдЧреЗ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ / etc / ssh / sshd_config рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ ssh рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП:

RSAAuthentication yes (рдХреНрдпрд╛ RSA рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ);
PubkeyAuthentication yes (рдЪрд╛рд╣реЗ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛ);
AuthorizedKeysFile %h/.ssh/authorized_keys (рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдкрде);
PasswordAuthentication yes (рдХреНрдпрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ)ред

рд╕рд░реНрд╡рд░ рдХреА рдХреБрдВрдЬреА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВ:

ssh-copy-id -i /path/to/pub/key user@server (рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬреА рдХрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рднрд╛рдЧ рдХреЙрдкреА рдХрд░реЗрдВ, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЛ рдлрд╝рд╛рдЗрд▓% h / .ssh / рдЕрдзрд┐рдХреГрдд_keys рдХреЗ рдкрде рдХреЗ рд╕рд╛рде рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА рджрд░реНрдЬ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо ssh-Agent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

eval $(ssh-agent -s) (eval POSIX рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╢реЗрд▓ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдЬреЗрдВрдЯ рдореЗрдВ рдХреБрдВрдЬреА рдбрд┐рдХреНрд░рд┐рдкреНрдЯреЗрдб рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рдПрдЧреА)ред

ssh-add ~/.ssh/our_private_key (рдПрдХ рдирд┐рдЬреА рдХреБрдВрдЬреА рдЬреЛрдбрд╝реЗрдВ)ред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ:

  • -i - рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХрд╛ рд╕реНрдерд╛рди рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ;
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ - рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо;
  • рд╕рд░реНрд╡рд░ - рд▓рдХреНрд╖реНрдп рд╕рд░реНрд╡рд░ рдХрд╛ рдЖрдИрдкреА рдпрд╛ рдбреАрдПрдирдПрд╕ред

рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП, рд╣рдо ssh config рдлрд╛рдЗрд▓ рдореЗрдВ рдХрдиреЗрдХреНрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдкрде рдкрд░ рд╕реНрдерд┐рдд рд╣реИ ~ / .ssh / configред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд SSH рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:

 Host myserver HostName ip/hostname Port 22/??? User username IdentityFile ~/.ssh/id_rsa 

рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ:

  • рдореЗрдЬрдмрд╛рди - рд╣рдорд╛рд░реЗ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдирд╛рдо;
  • HostName - рд╕рд░реНрд╡рд░ рдирд╛рдо;
  • рдкреЛрд░реНрдЯ - ssh рдкреЛрд░реНрдЯ
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо;
  • IdentityFile - ssh рдХреБрдВрдЬреАред

рдПрд╕рдПрд╕рдПрдЪ рдПрд╕рд╕реАрдкреА

рдЪрд▓реЛ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред SSH рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХ рдорд╢реАрди рд╕реЗ рд░рд┐рдореЛрдЯ рдкрд░ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдПрд╕рд╕реАрдкреА (рд╕рд┐рдХреНрдпреЛрд░ рдХреЙрдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдХрд┐рд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рд╕реЗ рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░ рдкрд░ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд:

scp test.txt username@server:/some/directory (рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рд╕реЗ рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреА рдирдХрд▓)ред
scp username@server:test.txt /some/directory (рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрд┐рд╕реА рд╕реНрдерд╛рдиреАрдп рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдХреЙрдкреА рдХрд░рдирд╛)ред
scp -r dir_name username@server:/some/directory (рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рд╕реЗ рд░рд┐рдореЛрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛)ред

рдпрд╣рд╛рдВ:

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо;
  • рд╕рд░реНрд╡рд░ - рд╕рд░реНрд╡рд░ рдХрд╛ рдкрддрд╛;
  • / рдХреБрдЫ / рд╕рд░реНрд╡рд░ - рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд╣рд╛рдВ рд╣рдо рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ;
  • dir_name - рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо;
  • -r - рдкреБрдирд░рд╛рд╡рд░реНрддреА рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

SSH рд╕реБрд░рдВрдЧ, рдкреНрд░реЙрдХреНрд╕реА

рдЕрдм рдЪрд▓реЛ рд░рд┐рдореЛрдЯ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдХреЗ рд╕рд╛рде рдкреЛрд░реНрдЯ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрд▓рд╛рд╕рд┐рдХ рдХреЗрд╕ рдХреЛ рд▓реЗрдВ, рддреЛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдЧреБрдЪреНрдЫрд╛, рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ "рджреБрд╖реНрдЯ рд╕реБрд░рдХреНрд╖рд╛ рдЧрд╛рд░реНрдб" рдФрд░ рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░реНрд╡рд░ рд╣реИ, ssh рдФрд░ https рдкреЛрд░реНрдЯ рджреБрдирд┐рдпрд╛ рдореЗрдВ рджрд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ MySQL рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рддреЛ:

ssh -f -N -L 9906:127.0.0.1:3306 user@server (MySQL рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░рд╛ рдорд╛рдорд▓рд╛)

рдирддреАрдЬрддрди, рд╣рдо mysql рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рдкреЛрд░реНрдЯ 9906 рд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ "рд╕реБрд░рдХреНрд╖рд╛" рд╕рд░реНрд╡рд░ рдкрд░ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред

ssh -D 8080 -q -C -N -f servername (рдкреЛрд░реНрдЯ 8080 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ SOCKS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛)

рдЗрд╕ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде, рд╣рдо ssh рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдореЛрдЬреЗ 5 рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдмрдирд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 curl -x socks5h://server-with-proxy:8080 https://test.domain 

Ssh рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкреЛрд░реНрдЯ рдЕрдЧреНрд░реЗрд╖рдг рдХрд╛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрдм рд╕рд░реНрд╡рд░ рдЬрд┐рд╕реЗ рдЖрдк рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдиреЗрдЯ рдХреЗ рдкреАрдЫреЗ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА:

ssh -f -N -R 2255:localhost:22 username@servername (рдПрдХ рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░ рд╕реЗ рд╕реНрдерд╛рдиреАрдп рдПрдХ рддрдХ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдирд╛)ред

рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░ рдкрд░, рдкреЛрд░реНрдЯ 2255 рдЦреБрд▓ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рдиреЗрдЯ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдХреЗ рдкреЛрд░реНрдЯ 22 рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 ssh -p 2255 username@localhost 

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐:

  • -рдПрдл - рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд▓рд┐рдП рдПрд╕рдПрдЪрдПрд╕ рднреЗрдЬреЗрдВ;
  • -рдПрди - рд░рд┐рдореЛрдЯ рд╣реЛрд╕реНрдЯ рдкрд░ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ;
  • -L - рд╕реНрдерд╛рдиреАрдп рдкреЛрд░реНрдЯ (рд╕реНрдерд╛рдиреАрдп рдкреЛрд░реНрдЯ: рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди: рд░рд┐рдореЛрдЯ рдкреЛрд░реНрдЯ) рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░реЗрдВ;
  • -R - рд░рд┐рдореЛрдЯ рдорд╢реАрди рдкрд░ рдкреЛрд░реНрдЯ;
  • -рдПрдХ - рдореВрдХ рдореЛрдб;
  • -D - рдЖрд╡реЗрджрди рд╕реНрддрд░ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рд╕реНрдерд╛рдиреАрдп рдЧрддрд┐рд╢реАрд▓ рдорд╛рд░реНрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ;
  • -рд╕реА - рдбреЗрдЯрд╛ рд╕рдВрдкреАрдбрд╝рди рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзред

Netcat (nc)

рд╣рдорд╛рд░рд╛ рдЕрдЧрд▓рд╛ рдкрдбрд╝рд╛рд╡ рдиреЗрдЯрдХреИрдЯ рд╣реИ, рдПрдХ рдпреВрдирд┐рдХреНрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЯреАрд╕реАрдкреА рдФрд░ рдпреВрдбреАрдкреА рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ, рд╡рд╣рд╛рдВ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЗрд╕рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдФрд░ рд╕рд░рд▓рддрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд┐рд╕реА рднреА рдорд╛рдирдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рд╡рд┐рддрд░рдг рдХрд┐рдЯ рдХреЗ рд╕рд╛рде рдЖрдкреВрд░реНрддрд┐ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдЗрд╕реЗ рд╣рд╛рде рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред

Netcat (nc) рдХреА рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ:

nc -vn ipaddress 22 (рд╕рд┐рдВрдЧрд▓ рдкреЛрд░реНрдЯ рд╕реНрдХреИрди);
nc -v ipaddress 10-55 (рдкреЛрд░реНрдЯ рд░реЗрдВрдЬ рд╕реНрдХреИрди);
nc -l 4444 (рдкреЛрд░реНрдЯ 4444 рдХреЛ рдЦреЛрд▓реЗрдВ рдФрд░ рд╕реБрдиреЗрдВ);
nc servername 4444 (рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рдкреЛрд░реНрдЯ рдкрд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ)ред

рдкреЛрд░реНрдЯ рдХреЛ рдЦреЛрд▓рдиреЗ рдФрд░ рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЪреИрдЯ рд░реВрдо =) рдорд┐рд▓рддрд╛ рд╣реИред

рдЕрдЧрд▓рд╛, рд╣рдо рдПрдирд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧреА:

cat test_file | pv -b | nc -l 4444 cat test_file | pv -b | nc -l 4444 (рдкреЛрд░реНрдЯ рдХреЛ рдЦреЛрд▓реЗрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╛рдЗрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ, -b рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде pv рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреА рдкреНрд░рдЧрддрд┐ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

nc servername 4444 | pv -b > filename nc servername 4444 | pv -b > filename (рд╣рдо рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕реА рддрд░рд╣ pv -b рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рд╣рдо рдордХреНрдЦреА рдкрд░ рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЧреНрд░рд╣ рдЬреЛрдбрд╝рдХрд░ рд╣рдорд╛рд░реЗ рдкрд╛рдЗрдк рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

tar -czf - /path/to/ | pv -b | nc -l 4444 tar -czf - /path/to/ | pv -b | nc -l 4444 (рдордХреНрдЦреА рдФрд░ рднреЗрдЬрдиреЗ рдкрд░ рд╕рдВрдЧреНрд░рд╣ рдлрд╝реЛрд▓реНрдбрд░);
n c servername 4444 | pv -b > file.tar.gz c servername 4444 | pv -b > file.tar.gz (рднреЗрдЬреЗ рдЧрдП рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ)ред

Nc рдХреА рдПрдХ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рд┐рд░реНрдл рдПрдХ http рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред

 while true; do nc -lp 80 < index.html; done 

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреЛрд░реНрдЯ 80 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ:

  • -l - рд╕реБрдирдиреЗ рдХреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ;
  • -n - DNS рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ;
  • -v - рдХреНрд░рд┐рдпрд╛ рдЖрдЙрдЯрдкреБрдЯред

Socat

рдпрд╣ рдПрдХ рдЙрдкрдпреЛрдЧреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рднреА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдорд╢реАрдиреЛрдВ, рдлреЙрд░рд╡рд░реНрдб рдкреЛрд░реНрдЯреНрд╕ рдЖрджрд┐ рдХреЗ рдмреАрдЪ рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдпрд╣ рдиреЗрдЯрд╕реИрдЯ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рджреЛ рджреНрд╡рд┐-рджрд┐рд╢рд╛рддреНрдордХ рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓рддрд╛ рд╣реИ, рдпрд╣ рдбреЗрдЯрд╛, рд╕реНрдЯреНрд░реАрдо рдЖрджрд┐ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рдХреА рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЛрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо COM рдкреЛрд░реНрдЯ рдХреЛ рдЯреАрд╕реАрдкреА рдкреЛрд░реНрдЯ, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдореИрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рд╛рдорд╛рдЬрд┐рдХ рдХрд╛рд░реНрдп рдЙрджрд╛рд╣рд░рдг:

socat -u FILE:file_name TCP-LISTEN:5778,reuseaddr # send file;
socat -u TCP:192.168.1.48:5778 STDOUT | pv -r > file_name socat -u TCP:192.168.1.48:5778 STDOUT | pv -r > file_name # рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ;
socat TCP-LISTEN:80,fork TCP:ubuntunode-4:80 # рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░ рдХреЗ рдкреЛрд░реНрдЯ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдкреЛрд░реНрдЯ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ;
socat TCP-LISTEN:1234,reuseaddr EXEC:/bin/bash # рдУрдкрди рд░рд┐рдореЛрдЯ рд╢реЗрд▓ =);
socat - TCP:server_with_remote_shell:1234 # рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░ рдХреЗ рджреВрд░рд╕реНрде рд╢реЗрд▓ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред

рд▓рдШреБ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди:

  • -u - рдпреВрдирд┐рдбрд╛рдпрд░реЗрдХреНрд╢рдирд▓ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ;
  • рдлрд╝рд╛рдЗрд▓ - рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ;
  • рдЯреАрд╕реАрдкреА-рд▓рд┐рд╕реНрдЯрди - рдЯреАрд╕реАрдкреА рдкреЛрд░реНрдЯ рдХреЛ рд╕реБрдиреЗрдВ;
  • reuseaddr - рдЕрдиреНрдп рд╕реЙрдХреЗрдЯ рдХреЛ рд╕рдорд╛рди рдкрддреЗ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП;
  • рдХрд╛рдВрдЯрд╛ - рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЪреИрдирд▓ рдХреЛ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
  • рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИред

рдХреНрдпрд╛ рдореБрдЭреЗ рдЕрдм рд╡реАрдбрд┐рдпреЛ рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП?

рдмреЗрд╢рдХ, рд╣рд╛рдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╕рдм рдХреБрдЫ рдЕрдореВрд░реНрдд рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗрдмрд┐рдирд╛рд░ рдХреЗ рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрджрд╛рд╣рд░рдг рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдЖрдк рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдЦреБрд▓реЗ рдкрд╛рда рдХреЛ рджреЗрдЦреЗрдВ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдзрд┐рдХрддрдо рдЖрддреНрдорд╕рд╛рдд рдХреЗ рд▓рд┐рдП рд╡реНрд▓рд╛рджрд┐рдореАрд░ рдбреНрд░реЛрдЬрд╝рдбреЗрдЯреНрд╕реНрдХреА рдХреЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдПрдВ ред рдФрд░ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛ред

рд╣рдо, рдмрджрд▓реЗ рдореЗрдВ, рдЕрд▓рд╡рд┐рджрд╛ рдирд╣реАрдВ рдХрд╣рддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рд▓рд┐рдирдХреНрд╕ рдкреНрд░рд╢рд╛рд╕рдХ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ!

Source: https://habr.com/ru/post/hi437114/


All Articles