ssh

зайти в screen на удалённой системе

Tags: •  •  •  •  • 

Требуется: Приатачиться к screen, запущенному на удалённой системе с минимальным количеством телодвижений.

Решение:
Не обязательно, но все таки:
1. делаем беспарольную аутентификацию как рассказно здесь
затем
2.

$ ssh -t login@host 'source .bashrc; screen -x'

Готово!

3. И на последок, что бы все вышеперечисленное таки совершалось с наименьшим количеством телодвижений, создаем скрипт:

$ cat >remotescreen
!#/bin/sh 
ssh -t login@host 'source .bashrc; screen -x'

$chmod 755 remotescreen

3.a ... или делаем алиас в любимом .*shrc
[code]

Изображение пользователя alexu.

SSHFS в две строчки

Tags: • 

Чтобы начать работать с sshfs (монтирование удаленных файловых систем через ssh), необходимо
1) установить пакет sshfs

apt-get install sshfs

2) добавить пользователя в группу fuse или воспользоваться sudo:
sudo sshfs user@machine:directory localdirectory

где user@machine - логин и имя удаленной машины, directory - подмонтируемая директория на удаленной машине (если ее пропустить, подмонтируется домашняя директория пользователя user), localdirectory - локальная директория для маунта.

2a) чтобы позволить другим людям воспользоваться маунтом, укажите опцию '-o allow_other' после localdirectory.

3) отключение производится командой

fusermount -u localdirectory

P.S.: Если вы получаете ошибку:

fuse: failed to exec fusermount: Permission denied

убедитесь, что вы выполнили пункт (2). За остальными опциями добро пожаловать в man sshfs :-)

Доступ к компьютеру за файерволом

Tags: •  •  •  •  • 

Бывает, что требуется получить доступ к компьютеру, который находится за файерволом или выходит в интернет изза NAT. Файервол пропускает исходящие соединения, но не впускает входящие. Хочется настроить зафаерволенный компьютер так, чтобы к нему впоследствии можно было подключиться. В этом случае можно действовать разными способами (специальные программы вроде zebedee здесь не рассматриваются).

Изображение пользователя ramok.

Как выжить в Windows без переключения расскладок по CapsLock

Tags: •  •  •  • 

1. если вы в Windows только для того что бы подключится по ssh куда нибуть и набрать там письмо или отправить sms сообщение, то самый простой вариант взять популярный ssh клиент putty у которого есть встроенная опция по CapsLock переключатся на кириллицу. В настройках соединения ставим галочку в Window -> Translation -> Caps Lock acts as Cyrillyc switch и наслаждаемся результатом Ж:-)

2. Если вы задержались в Windows подольше и хотите перелючатся по CapsLock во всех приложе ниях, то тут поможет програмка lswitch.exe которую можно взять тут . Запускаем как:

 
lswitch.exe 20 
спасибо nexus за типс Ж:-)

3. Ну раз уж нужно обосноватся в Windows подольше, то можно настроить X-Windows с правильным переключением расскладок.

Изображение пользователя ramok.

Автоматический запуск ssh-agent

Tags: •  •  •  • 
Ранее было рассказано как настроить ssh-agent для автоматической авторизации приложений работающих с ssh. Если вы не используете X-Windows, то ssh-askpass вам не поможет. Зато можно настроить запуск ssh-agent в вашем шеле.

Идея в том что бы указать сокет ssh-agent с жестко заданным именем, и если ssh-agent незапущен, то запустить его.

добавляем в ~/.zshrc или ~/.bashrc
[ ! -S ~/.ssh/ssh-agent ] && eval `/usr/bin/ssh-agent -a ~/.ssh/ssh-agent`
[ -z $SSH_AUTH_SOCK ] && export SSH_AUTH_SOCK=~/.ssh/ssh-agent
Изображение пользователя ramok.

Настройка _безопасной_ безпарольной аутентификации по ssh

Tags: • 

Вот здесь описан способ безпарольной авторизации http://rusmafia.org/linux/ssh-auth-pubkey
Обратите внимание на пункт 1) где мы отказываемся от ключевой фразы на файл с приватным ключем. Это обозначает что, если злоумышленник украдет у нас этот файл, он сможет авторизироватся на нашем сервере без пароля.

Решением этой проблемы - установка ключевой фразы на файл с приватным ключом. Но тогда нам придется вводить это фразу каждый раз при использовании ssh. Получается что поменяли шило на мыло, и вместо пароля на сервер, вводим пароль к ключу. Это конечно лучше, когда у вас десяток серверов, и на все нужно помнить пароли. Но хочется же безпарольной авторизации, и притом что бы не даже украденый ключь ничего не мог дать злоумышленнику.

Для этого существуют 2 дополнительные программы в пакете ssh: программа ssh-agent всегда висит в памяти и хранит в себе приватные ключи и вся авторизация с удаленной системой проходит через эту программу. С помощью программы ssh-add мы можем добавлять нужные ключи ssh-agent, введя ключевую фразу на файл с приватным ключем только один раз!

Итак по порядку:

Изображение пользователя ramok.

Скрипт для временного поста файлов в интернет

Tags: •  •  • 
Часто бывает что нужно временно выложить в интернет какой нибудь файл и дать ссылку для скачивания. Этот скрипт облегчает заливку файлов на сервер по ssh и выводит урл
пример использования
Изображение пользователя ramok.

Запрет запуска sshd в debian

Tags: •  • 

touch /etc/ssh/sshd_not_to_be_run

Изображение пользователя ramok.

Переброс локальных портов удаленного сервера на локальную машину

Tags: • 

Допустим у нас есть доступ по ssh на сервер где крутятся вкусные локальные сервисы (обычно это например sendmail, mysql, swat, настройки cups.. и все что принято вешать на 127.0.0.1). Задача - получить доступ к этим сервисам на локальной машине.
Для этого воспользуемся возможностью ssh перенаправлять локальные порты.

Рассмотрим на примере переброса порта mysql.
1) открываем одну консоль и логинимся там по ssh у нашему серверу следующим образом:

$ ssh -L 33306:127.0.0.1:3306 

Изображение пользователя ramok.

Настройка опций подключения для отдельных хоcтов ssh

Tags: • 

Если вам достался шел с неуподобочитаемым именем типа hoster2956@super.puper.shell.net.org
то сложно его набирать при запуске ssh(scp,sftp), да и запомнить (пусть даже и с автодополнением как тут http://rusmafia.org/linux/howto_autocompletion_zsh_ssh). И допустим нужно указывать конектится к определнному хосту по ssh1.

в ~/.ssh/config вносим
===
Host pup
HostName super.puper.shell.net.org
User hoster2956
Protocol 1
===

протестируем скопировав на этот хости файл ~/.screenrc
$ scp ~/.screenrc pup:~

Изображение пользователя ramok.

Настройка безпарольной аутентификации по ssh

Tags: • 

Допустим, вам нужно настроить беcпарольный вход по ssh (scp и sftp тоже) на удаленный сервер remote.org.ua под пользователем user.

Итак..

Изображение пользователя ramok.

Подавление вывода системных сообщений при логине на удаленную систем

Tags: • 

touch ~/.hushlogin

выдержка из man login:

в Debian
===
После успешного входа в систему, будут показаны сообщения от системы и о наличии
почты. Можно отключить вывод файла системных сообщений /etc/motd, создав в
домашнем каталоге файл нулевой длины с именем .hushlogin. Сообщение о наличии
почты может быть таким: "У вас есть новая почта.", "У вас есть почта." или "У
вас нет почты. ", в зависимости от наполненности почтового ящика.
===

FreeBSD и OpenBSD
===
Immediately after logging a user in, login displays the system copyright
notice, the date and time the user last logged in, the date and time of

Глобальное использование ssh-agent в X-сессии SuSE Linux.

Tags: •  •  • 

Глобальное использование ssh-agent в X-сессии SuSE (по мотивам opensuse.org).

Для начала, нужно убедиться в наличии установленных пакетов:
openssh-askpass
pam_ssh
openssh

Далее, необходимо в домашней директории пользователя создать файлы .xsession
и .xinitric (по умолчанию после установки SuSE их нет). Например так:

$> cp /etc/X11/xdm/sys.xsession ~/.xsession
$> cp ~/.xinitrc.template ~/.xinitrc

Затем отредактировать ~/.xsession, добавив (или исправив уже имеющиеся)
строки:

usessh="yes"
sshagent="yes"
SSH_ASKPASS="/usr/lib/ssh/x11-ssh-askpass"

И в файле ~/.xinitrc раскомментироваить строку, содержащую:
ssh-add

Осталось лишь отредактировать настройки PAM модуля для xdm, добавив строки:

Изображение пользователя ramok.

Как настроить автодополнение в zsh для ssh хостов взятых из ~/.ssh/known_hosts

Tags: •  •  •  • 
добавляем в ~/.zshrc
ssh_hosts=($hosts ${${${(f)"$(<$HOME/.ssh/known_hosts)"}%%\ *}%%,*})
# automatically remove duplicates from these arrays
typeset -U ssh_hosts
zstyle ':completion:*:hosts' hosts $ssh_hosts
zstyle ':completion:*:(ssh|scp|sftp):*' tag-order '! users' #не добавлять юзера
проверяем запустив новый шел и набрав ssh [TAB] должно выдавать хосты на которые когда то были заходы по ssh дополнительные хосты которые вы хотите что бы автодополнялись можно заносить в массив $hosts перед приведенными командами.
Изображение пользователя ramok.

Копирование директорий с сохранинием прав и атрибутов(так же по сети)

Tags: •  •  •  •  •  • 

Во-первых такой фокус можно делать только с правами рута, так как только он имеет право изменять владельцев файла

# tar c /etc | tar x
Копирует директорию /etc в текущую директорию с сохраниением всех прав

Если нужно скопировать директорию /var/cache/apt/ с машины host1 на host2, то используем netcat

host2:~# nc -l -p 12345 | tar -C / -x

host1:~# tar c /var/cache/apt/ | nc host2 12345

Запускаем именно в таком порядке Ж:-)
Так же можно к tar добавить ключик z или j если узким местом передачи является сеть.

Приостановить сессию ssh

Tags: •  •  •  •  • 

Если вы подключились по ssh к удаленному серверу и вам необходимо попасть в шелл того компьютера, с которого запущен ssh, нажмите "~", затем ^Z. Это отправит ssh в фон, как обычную задачу:
debserver:~# ~^Z [suspend ssh]
[1]+ Stopped ssh root@ns.local1.net
zombie:~$

вернуть обратно нужно набрать fg [nr]
где [nr] номер работы(в данном случае 1)
если у вас один jobs то можно просто fg

По материалам http://souptonuts.sourceforge.net/how_to_linux_and_open_source.htm

RSS-материал