SSH
от ILuxWiki
Съдържание |
SSH (Secure Shell) Обща информация
Само по себе си това е множество от стандарти, съдържащ в себе си мрежов протокол, позволяващ създаването на защитена връзка. SSH се използва за свързване с друга система през мрежата с цел изпълняване на команди на отдалечената машина. Той е един доста добър заместител на rlogin, rsh, telnet. За разлика от изброените програми които нямат алгоритъм за шифриране на връзката и могат да бъдат проследнеи, то SSH съдържа в себе си бързоблоковите алгоритми за шифроване 3DES, BlowFish. Процеса на шифроване започва още преди да сте се индентифицирали в сървъра.
SSH се състои от 2 части. Сървър и Клиент.
Сървъра се инсталира на UNIX базирана система, и свързването с него става посредством Клиент.
Под Линукс Клиента е SSH. За да се свържете просто пишете:
[]user@root~ #ssh user@domain[IP] []user@root~ #ssh domain[IP] -l user
В случая user е потребителското Ви име към сървъра, а IP/domain е адреса на машината. Ако имате запис на DNS на машината, може да използвате командата по много по-добър и приветлив начин.
Ако потребителското име на локалния компютър, отговаря на потребителското име на отдалечения компютър, не се налага обявяването на user при свързването, тъй като Ви индетифицира автоматично.
пример:
user@root~ #ssh myserver(IP)
Забележка Ако потребителските имена на локалния компютър и отдалечения се различават, синтаксиса на командите е: пример:
user@root~ #ssh myserver -l user user@root~ #ssh user@myserver
Забележка: Ако нямате запис на DNS на машината, може да направите една малка настройка в файла /etc/hosts с някои от редакторите с които разполагате. Командата за редактиране бива със следния синтаксис:
user@root~ #vi /etc/hosts или user@root~ #edit /etc/hosts или user@root~ echo "192.168.1.2 myserver" >> /etc/hosts
Като с първите две команди ще редактирате като текстов файл, типа и синтаксиса на фаила трябва да бъде със следния тип: "IP DOMAIN". За пример Ви давам следната ситуация.
192.168.1.2 myserver
След въвеждане на паролата получавате достъп до системата, с опредлените права към акаунта Ви и да започнете администрация към отдалечения компютър.
Създаване на ssh-key
В този раздел ще Ви покажа как да си направите логването към сървърите да става с ключ. Използва се, когато някоя програма трябва да се логне автоматично. Или за да си сложите друга парола, различна от тази на машината. В някои случаи машините са настроени да пускат само потребители с ключ (независимо дали имате локален акаунт). За целта ни е необходим SSH сървър, който ние имаме вече на разположение, инсталиран keychain. Методът се основава на размяната на RSA & DSA ключове за оторизация.
Инсталирането на keychain става по следния начин:
~> sudo apt-get install keychain
Сега следва да си генерираме ключове, като изпълним следната команда:
user@linux:~> ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/user/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_dsa. Your public key has been saved in /home/user/.ssh/id_dsa.pub. The key fingerprint is: 57:17:87:fb:09:76:5e:53:4f:ee:05:cf:31:8f:09:48 user@linux user@linux:~>
След което се налага да копираме ключа на отдалечената машина:
user@linux:~> scp ~/.ssh/id_dsa.pub user@myserver:/home/user/.ssh/id_dsa_home.pub
След което се свържете с отдалечената машина:
user@linux:~> ssh user@myserver password: user@myserver:~> cd ~/.ssh user@myserver:~/.ssh> cat id_dsa_home.pub >> authorized_keys user@myserver:~/.ssh> exit
Забележка: Ако папката не съществува на отдалечената машина я саздайте:(Задължително е да има точка преди името на директорията)
user@myserver:~> mkdir ~/.ssh
Сега отворете ~/.bash_profile или ~/.bashrc в зависимост от вашата дистрибуция с редактор и добавете следното:
keychain ~/.ssh/id_rsa ~/.ssh/id_dsa
. ~/.keychain/${HOSTNAME}-sh
Сега след като стартирате Х терминал или конзола ще Ви подкани да въведете паролата/ите за DSA
KeyChain 2.4.2.1; http://www.gentoo.org/projects/keychain Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL * Initializing /home/user/.keychain/linux-sh file... * Initializing /home/user/.keychain/linux-csh file... * Starting ssh-agent * Initializing /home/user/.keychain/linux-sh-gpg file... * Initializing /home/user/.keychain/linux-csh-gpg file... * Starting gpg-agent * Adding 2 ssh key(s)... Enter passphrase for /root/.ssh/id_dsa: Identity added: /home/seaman/.ssh/id_dsa (/home/seaman/.ssh/id_dsa)
На локалната машина трябва да изпълните и това:
user@linux:~> ssh-add ~/.ssh/id_dsa Enter passphrase for /home/user/.ssh/id_dsa: Identity added: /home/user/.ssh/id_dsa user@linux:~>
На следващото влизане ч/з ssh към отдалечения компютър няма да Ви изисква парола.
Забележка: "Enter passphrase" въведете парола, каквато ви допада. Така ако някой хакне локалния ви компютър и види history, да си нямате неприятности.
пренасочване на портове
/usr/bin/ssh -n -N -R 2222:127.0.0.1:22 remote_shell@linuxfan.org
chroot за sftp users only
/etc/group chroot:*:999:
/etc/passwd user:*:999:999:user:/data:/usr/sbin/nologin
/etc/ssh/sshd_config
Match group chroot
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
# mkdir -p /home/user/data # chown root:chroot /home/user # chown user:chroot /home/user/data

