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