SSH, OPENSSH-SERVER, SCP, ключи шифрования
            
            SSH (англ. Secure SHell — «безопасная оболочка») — сетевой протокол сеансового уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Сходен по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. 
OpenSSH (открытая безопасная оболочка) — набор программ, предоставляющих шифрование сеансов связи по компьютерным сетям с использованием протокола SSH. 
В установке никаких сложностей нет: 
sudo apt-get install openssh-server и можно подключаться к серверу: 
ssh 10.10.10.4 Вводим логин и пароль учетной записи, имеющейся на сервере, и мы внутри. 
для отсоединения: 
exit scp - утилита для передачи файлов по ssh. 
Копируем файл на сервер 10.10.10.4 через 22ой порт: 
scp -P 22 /home/virtdiver/test.txt it@10.10.10.4:/home/it/test.txt Копируем файл с сервера 10.10.10.4 через 22ой порт: 
scp -P 22 it@10.10.10.4:/home/it/test.txt /home/virtdiver/test.txt копируем папку test на сервер 10.10.10.4 через 22ой порт: 
scp -P 22 -r /home/virtdiver/test it@10.10.10.4:/home/it Копируем папку test с сервера 10.10.10.4 через 22ой порт: 
scp -P 22 -r it@10.10.10.4:/home/it/test /home/virtdiver Если возникнет необходимость передавать файл, содержащий пробелы в названии, то путь нужно поместить в кавычки, и экранировать пробелы слешем (\). В примере ниже передается файл с именем "filename with space.txt" (За эту информацию спасибо 
zbl ): 
scp -P 22 ' it@10.10.10.4:/home/it/filename\ with\ space.txt' '/home/virtdiver/filename\ with\ space.txt' Генерация SSH ключей 
В первую очередь, нужно создать пару ключей, если их ещё нет. По умолчанию ключи хранятся в домашней директории пользователя, /home/имя пользователя/.ssh/id_rsa и id_rsa.pub. Ключи должны генериться на клиенте именно в той учетке, из которой будете заходить на сервер по ssh. Меняем пользователя на нужного (если необходимо): 
sudo su postgres Генерируем ключи: 
ssh-keygen путь можно оставить по умолчанию, просто жмем Enter;
вводим пароль, если нужно, если не нужно, жмем Enter. 
Пара ключей готова. Мне авторизация при помощи ключей нужна была для автоматического слива бэкапа базы данных с двух серверов на третий посредством scp, для специально созданного пользователя postgres, поэтому пароль я оставил пустым. 
Далее нужно скопировать ключ на ssh-сервер: 
scp ~/.ssh/id_rsa.pub postgres@10.10.10.4:.ssh/authorized_keys2 Проверяем: 
ssh 10.10.10.4 Наблюдаем, что пароль не запросился. 
Для других ключи генерятся аналогично, но ключ теперь копировать на сервер не надо, необходимо дописать существующий на ssh-сервере, данными из сгенерированного: 
cat ~/.ssh/id_rsa.pub | ssh postgres@10.10.10.4 "cat >> .ssh/authorized_keys2" В итоге имеем доступ без пароля на 10.10.10.4 с авторизацией, использующей ключи шифрования, для пользователя postgres с обоих серверов. 
А теперь о том, из-за чего я убил целый час. Если сгенерировать ключик под windows с помощью PuTTYgen и аналогично добавить его на сервер, то через putty с этим ключем мы зайдем на сервак, а с линукса с этим же ключем - нет, так как у putty и openssh разные форматы. Если файл ключа создан в putty и нужно сконвертировать в формат openssh то ставим: 
sudo apt-get install putty-tools И конвертируем: 
puttygen -O private-openssh /home/virtdiver/putty/priv_key.ppk -o /home/virtdiver/putty/priv_key где priv_key.ppk - файл формата putty ,  priv_key - получаемый файл ключа в формате openssh. 
И обратная процедура, из формата openssh в формат putty: 
puttygen /home/virtdiver/putty/priv_key -o /home/virtdiver/putty/priv_key.ppk
	    
                Nov. 3, 2010