āĻāĻŽāĻŋ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻ¨ā§āĻĄā§āĻ āĻŽā§āĻļāĻŋāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§ āĻšāĻ¤āĻžāĻļ āĻšāĻ¯āĻŧā§āĻāĻŋāĨ¤ āĻ¨āĻž, āĻāĻŽāĻŋ āĻŽāĻžāĻāĻā§āĻ°ā§āĻ¸āĻĢāĻ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻĒāĻŖā§āĻ¯ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻĒāĻā§āĻˇ āĻŦāĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻ āĻ¨āĻāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒāĻŖā§āĻ¯ āĻ¤āĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŋ āĻāĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¨āĻ¯āĻŧāĨ¤
āĻāĻāĻ¨ā§āĻĄā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻž āĻāĻŽāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ
āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻŦā§āĻĻāĻ¨āĻžāĻĻāĻžāĻ¯āĻŧāĻ āĻāĻŋāĻ˛, āĻāĻžāĻ°āĻŖ āĻāĻ āĻ¸āĻāĻ¯ā§āĻāĻā§āĻ˛āĻŋ āĻšāĻ¯āĻŧ āĻāĻ āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (Hello WinRM āĻ¸āĻš HTTPS) āĻ
āĻĨāĻŦāĻž āĻā§āĻŦ āĻ¸ā§āĻĨāĻŋāĻ°āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¨āĻž (āĻŦāĻŋāĻĻā§āĻļā§ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻšā§āĻ¯āĻžāĻ˛ā§ RDP)āĨ¤
āĻ
āĻ¤āĻāĻŦ, āĻāĻāĻ¨āĻžāĻā§āĻ°āĻŽā§ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻā§āĻĄāĻŧā§ āĻāĻ¸āĻž
āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ āĻŦāĻŋāĻāĻ˛ā§āĻĒ:
āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ - āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§
āĻĒā§āĻ¯āĻžāĻā§āĻ Chocolatey - Ansible āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§, āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻā§āĻŽāĻŋāĻāĻž
jborean93.win_openssh
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, āĻāĻŽāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻŦ, āĻ¯ā§āĻšā§āĻ¤ā§ āĻŦāĻžāĻāĻŋāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻŽāĻŦā§āĻļāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ°āĨ¤
āĻāĻŽāĻŋ āĻ¨ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ āĻ¯ā§ āĻāĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻāĻāĻ¨āĻ āĻŦāĻŋāĻāĻž āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¤āĻžāĻ āĻāĻāĻŋ āĻā§āĻĒāĻžāĻĻāĻ¨ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§ āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻ°āĻŋāĻ˛āĻŋāĻāĻāĻŋ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨
āĻāĻ¨āĻĒā§āĻ¯āĻžāĻ āĻāĻ¨ āĻ¸āĻŋ: āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻĢāĻžāĻāĻ˛ āĻāĻĒā§āĻ¨āĻāĻ¸āĻāĻ¸āĻāĻāĻ
āĻ¸āĻ āĻŋāĻ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻžāĻ§ā§āĻ¯āĻ¤āĻžāĻŽā§āĻ˛āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ: āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŦāĻ āĻ
ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨ āĻā§āĻ°ā§āĻĒāĨ¤
āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž install-sshd.ps1 āĻāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
āĻĒā§āĻ°ā§āĻ 22 āĻ āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¨:
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
āĻ¸ā§āĻĒāĻˇā§āĻā§āĻāĻ°āĻŖ: āĻ ā§āĻ¯āĻžāĻĒāĻ˛ā§āĻ āĻ¨āĻ¤ā§āĻ¨-NetFirewallRule āĻāĻāĻ¨ā§āĻĄā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° 2012 āĻāĻŦāĻ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤āĨ¤ āĻĒā§āĻ°āĻžāĻā§āĻ¨āĻ¤āĻŽ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ (āĻŦāĻž āĻĄā§āĻ¸ā§āĻāĻāĻĒ) āĻāĻĒāĻ¨āĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
āĻāĻ¸ā§āĻ¨ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻļā§āĻ°ā§ āĻāĻ°āĻŋ:
net start sshd
āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒā§, āĻšā§āĻ¸ā§āĻ āĻā§āĻā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻšāĻŦā§ (āĻ¯āĻĻāĻŋ āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĨāĻžāĻā§) %programdata%ssh
āĻ¯āĻāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ āĻ¤āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋāĻ° āĻ āĻā§āĻ¸ā§āĻāĻžāĻ°ā§āĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ:
Set-Service sshd -StartupType Automatic
āĻāĻĒāĻ¨āĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻļā§āĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ (āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ā§āĻ° āĻĒāĻ°ā§, āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻšāĻ¯āĻŧ cmd āĻāĻŽāĻžāĻ¨ā§āĻĄ):
New-ItemProperty -Path "HKLM:SOFTWAREOpenSSH" -Name DefaultShell -Value "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -PropertyType String -Force
āĻ¸ā§āĻĒāĻˇā§āĻā§āĻāĻ°āĻŖ: āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŽ āĻĒāĻĨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻ°āĻĒāĻ°ā§ āĻā§?
āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻ¸ā§āĻ āĻāĻĒ sshd_config, āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻŦ āĻ¸āĻŋ: āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻĄā§āĻāĻžāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ:
PasswordAuthentication no
PubkeyAuthentication yes
āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ .ssh, āĻāĻŦāĻ āĻāĻāĻŋāĻ¤ā§ āĻĢāĻžāĻāĻ˛ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤_āĻā§. āĻāĻŽāĻ°āĻž āĻ¸ā§āĻāĻžāĻ¨ā§ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻā§ āĻ˛āĻŋāĻā§ āĻ°āĻžāĻāĻŋāĨ¤
āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¸ā§āĻĒāĻˇā§āĻā§āĻāĻ°āĻŖ: āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¯āĻžāĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻ¤āĻžāĻ° āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋāĻ¤ā§ āĻ˛ā§āĻāĻžāĻ° āĻ āĻ§āĻŋāĻāĻžāĻ° āĻĨāĻžāĻāĻž āĻāĻāĻŋāĻ¤āĨ¤
āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ¯āĻŧ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻ āĻ§āĻŋāĻāĻžāĻ° āĻā§āĻāĻŋāĻ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
StrictModes no
āĻāĻĒāĻžāĻ¯āĻŧ āĻĻā§āĻŦāĻžāĻ°āĻž, āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŋ: āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻĢāĻžāĻāĻ˛ āĻāĻĒā§āĻ¨āĻāĻ¸āĻāĻ¸āĻāĻāĻ 2āĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻā§ (FixHostFilePermissions.ps1, FixUserFilePermissions.ps1), āĻ¯āĻž āĻ āĻ§āĻŋāĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻ āĻŋāĻ āĻāĻ°āĻ¤ā§ āĻŦāĻžāĻ§ā§āĻ¯ āĻ¨āĻ¯āĻŧ, āĻ¸āĻš āĻ¸āĻš āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤_āĻā§āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŋāĻā§ āĻāĻžāĻ°āĻŖā§ āĻ¤āĻžāĻ°āĻž āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻ°ā§ āĻ¨āĻžāĨ¤
āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻā§āĻ˛āĻŦā§āĻ¨ āĻ¨āĻž sshd āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§āĨ¤
ru-mbp-666:infrastructure$ ssh [email protected] -i ~/.ssh/id_rsa
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS C:UsersAdministrator> Get-Host
Name : ConsoleHost
Version : 5.1.14393.2791
InstanceId : 653210bd-6f58-445e-80a0-66f66666f6f6
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : en-US
CurrentUICulture : en-US
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled : True
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace
PS C:UsersAdministrator>
āĻŦāĻŋāĻˇāĻ¯āĻŧāĻāĻ¤ āĻāĻžāĻ˛ā§/āĻŽāĻ¨ā§āĻĻāĨ¤
āĻĒā§āĻļāĻžāĻĻāĻžāĻ°āĻ°āĻž:
- āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĻāĻ°ā§āĻļ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĨ¤
āĻ¯āĻāĻ¨ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻāĻāĻ¨ā§āĻĄā§āĻ āĻŽā§āĻļāĻŋāĻ¨ āĻĨāĻžāĻā§, āĻ¤āĻāĻ¨ āĻāĻāĻŋ āĻā§āĻŦ āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ āĻšāĻ¯āĻŧ āĻ¯āĻāĻ¨:
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž ssh āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¯āĻžāĻ, āĻāĻŦāĻ āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž rdp āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ,
āĻāĻŦāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻŦā§āĻ°ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ āĻšāĻ˛ āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻāĻāĻŋ ssh āĻāĻžāĻ¨ā§āĻ˛ āĻāĻŦāĻ āĻāĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ RDPāĨ¤ - āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻ¸āĻšāĻ
āĻāĻŽāĻŋ āĻŽāĻ¨ā§ āĻāĻ°āĻŋ āĻāĻ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ. - āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻāĻ¤āĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŽā§āĻļāĻŋāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ
āĻā§āĻ¨ āĻā§āĻ°āĻžāĻĢāĻŋāĻāĻžāĻ˛ āĻļā§āĻ˛ āĻ¨ā§āĻ, āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻ°āĻŋāĻ¤ āĻĄā§āĻāĻžāĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻāĻāĻ¯āĻŧāĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĨ¤
āĻāĻ¨āĻ¸:
- RDP āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§ āĻ¨āĻžāĨ¤
āĻāĻ¨āĻ¸ā§āĻ˛ āĻĨā§āĻā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻž, āĻšāĻžāĻ¯āĻŧāĨ¤ āĻāĻŽāĻŋ āĻāĻŽāĻ¨ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§ āĻŦāĻ˛āĻ¤ā§ āĻāĻžāĻā§āĻāĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ GUI āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻāĻĒāĻāĻ°āĻŖ:
āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¨āĻŋāĻ°ā§āĻ˛āĻā§āĻāĻāĻžāĻŦā§ āĻĨā§āĻā§ āĻ
āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻāĻ¤ā§āĻ¸: www.habr.com