SSH без ввода пароля

Сегодня коллега писал скрипт, и для упрощения процесса было необходимо копировать файлы с одного linux хоста на другой без ввода пароля по scp. Раньше это нигде не использовал, поэтому пришлось немного маны покурить.

Во первых, если кому надо, то настраивается это крайне просто.

на хосте с которого будем подключаться нужно сгенерить ключ без пароля:

test_user@testhost:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test_user/.ssh/id_rsa):
/home/test_user/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/test_user/.ssh/id_rsa.
Your public key has been saved in /home/test_user/.ssh/id_rsa.pub.
The key fingerprint is:
52:99:be:4f:fd:99:ce:4e:de:9c:38:95:b9:dd:b5:a3 test_user@testhost

после этого, содержимое файла /home/test_user/.ssh/id_rsa.pub добавить в /home/%username%/.ssh/authorized_keys на хосте КУДА будем подключаться, и именно тому пользователю, под которым будем подключаться. Можно это сделать в ручную, а можно запустив команду на хосте С КОТОРОГО будем логинится:

ssh-copy-id -i /home/test_user/.ssh/id_rsa.pub test_user@ip_address

После этого ssh %username%@ip_address не будет спрашивать пароль.

И вот на этом месте меня посетила не веселая мысль. Дело в том, что какой-нибудь малварь (примитивный скрипт на bash), запущенный с вашими правами на линукс хосте с установленным sshd, может элементарно открывать бэкдор для последющего входа по ssh.  Причем что бы обнаружить такой бэкдор не поможет никакой антивирус.

Самый большой FAQ по SSH

abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:

  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)


Читать

Debian Server для новичка

Как-то обеспокоился наличием собственного FTP-сервака. Тем более под это дело «на помойку» был отдан комп этак десятилетней давности. Так как я человек хоть и виндовый, но начинал с чистого ДОСа (про книжки тов. Фигурнова кто помнит?), то я решил сделать все на линуксе. В линуксе я был ноль полный. Еще и усложнил задачу — только консоль, никаких исков (как же — это ж линукс). Дистрибутивом был выбран Debian. Так получилось, что надобность в 2Тб личном хранилице отпала через год и комп был отдан в хорошие руки, а хард пристроен в нужное место. Но был накоплен неплохой опыт стопроцентного новичка. Какие только глупые ошибки я не совершал поначалу! И хабр читал, между прочим, пока разбирался с проблемами. Поэтому эту свою дебютную (первую) статью на хабре я посвящаю тем, кто хочет заняться линуксом с нуля и эта статья призвана для плавного ввода «в тему», являясь, по сути, фильтрацией и систематизацией всего того, что я нашел на просторах интернета. Ранее я этот материал уже публиковал, но, думаю, на хабре он тоже будет полезен.

Что и как хотим получить в результате:
— консольная установка ОС с флешки;
— навыки консольного управление;
— создание собственного репозитория;
— обеспечение удаленного доступа по протоколу FTP/SFTP;
— обеспечение удаленного управления по протоколу SSH;
— дистанционное включение сервера, находящегося за маршрутизатором;
— создание условий работы веб-сервера (в идеале связка nginx+apache).

Читать

SSH port forwarding

Проброс портов по ssh — то, что должен знать каждый уважающий себя админ. Суть вопроса в следущем:
Допустим у вас есть сервер с unix (на цисках и прочих девайсах поддерживающих ssh не проверял), назовем его узел А, а есть еще один компьютер, назовем его узел Б.

Как можно использовать ssh канал?

1. Консоль. С этим все знакомы.
2. scp (или если использовать PuTTY pscp) — копирование файлов с узла А на узел Б и обратно через секурный туннель.
3. Проброс портов с одного узла на другой.

Предполагаю, что первые два варианта всем известны и понятны, поэтому их рассматривать не буду.
Собственно порт форвардинг: вариант первый — на сервере есть интернет, и есть желание его заюзать на другом компе, при этом мутить прокси нет желаниявозможности.

Все просто, в PuTTY (если под виндой), или в опциях ssh (это в линукс), делаем:

Читать

Организация SSH-доступа по одноразовым паролям

В любой серьезной компании иногда возникает необходимость в том, чтобы сотрудник, уехавший в отпуск, срочно выполнил свои должностные обязанности. Рассмотрим ситуацию, когда компании необходим конкретный сотрудник, например, системный администратор, который в данный момент возлежит на пляже в тысяче километров от душного офиса. Допустим даже, что этот сотрудник согласен выполнить неожиданно свалившуюся ему на голову работу и на курорте есть интернет-кафе. Но вот проблема: кафе располагается в темном переулке, на его компьютерах стоят популярная ОС, трояны, кейлоггеры и прочие хактулзы, так что набирать пароль root’а от главного сервера компании на подобных машинах довольно неразумно.

Читать