Важное: Для невнимательных, в OS отличные от OpenBSD, необходимо скачивать и устанавливать portable версии OpenSSH, П-О-Р-Т-И-Р-О-В-А-Н-Н-Ы-Й OpenSSH.
Примечание:
Драйвера рандомизационных устройств OS Solaris:
Проекты для эмуляции устройств рандомизации:
Для тех кто желает собрать OpenSSH с библиотекой RSAref, на самом деле, необходимости в ней нет, поскольку OpenSSL имеет собственную реализацию RSA:
Устанавливаем OpenSSH:
OpenSSH 2.9p2 или 3.01p требует уже установленных в системе библиотек:
Если указанные библиотеки установлены, можно перейти к установке OpenSSH, иначе,
необходимо собрать перечисленные библиотеки.
Для проверки наличия библиотек, в системах FreeBSD/Linux/NetBSD/OpenBSD,
воспольуйтесь командой ldconfig, man ldconfig.
Например (Linux):
ldconfig -p | grep ssl
ldconfig -p | grep libz
...
Например (FreeBSD):
ldconfig -r | grep ssl
...
Например (Solaris):
echo $LD_LIBARARY_PATH
echo $LD_RUN_PATH
и в соответствии с указанным маршрутом библиотек, использовать команды:
ls -la /path/lib | grep ssl
...
или
find /path -name "libssl*" -print
Устанавливаем библиотеки ZLib и OpenSSL:
Примечание: для Solaris/Sparc 5.5[1] и 5.6 советуют собирать OpenSSL статически из-за ошибок связанных с библиотекой crypto. Не забудьте добавить путь к библиотекам OpenSSL в LD_LIBRARY_PATH/LD_RUN_PATH, для последующей сборки и работы OpenSSH.
Важное: для тех кто хочет собрать OpenSSL и OpenSSH с библиотекой rsaref2, это не нужный спорт, но если уж решили, то примените патч и укажите в LIBS библиотеки необходимые для сборки OpenSSL - rsaref и для OpenSSH дополнительно RSAglue(эту взять от прежде собранного OpenSSL с поддержкой rsaref). При сборке OpenSSH с rsaref не забудьте исправить порядок следования библиотек в Makefile: LDFLAGS=-L. -lssh -Lopenbsd-compat/ -lopenbsd-compat -R/usr/local/ssl/lib -L/usr /local/ssl/lib -lcrypto -lRSAglue -lrsaref -L/usr/local/lib -R/usr/local/lib и далее при сборке утилит.
В ряде систем, отсутствуют драйвера и устройства рандомизации:
Примечание: Если у вас возникли проблемы на этапе линковки в коммерческих non-intel платформах, ищите правильный порядок следования библиотек -lname и правьте Makefile.
Дело в том что ни один грамотный администратор, не будет устанавливать на non-intel платформу gcc с его линкером, гнутые ld просто не работают!
А родные линкеры очень умные и щепетильные в плане построения компилятора и линковщика.
Позже я добавлю тонкости установки OpenSSH на платформы ConvexOS(что-то типа bsd-43, по-русски глюкало), SPP HP-UX(ядро mach с эмуляцией OS HP-UX - по-русски глюкало), HP-UX.
Генерация новых или недостающих личных и публичных ключей (private/public) для SSH-1(rsa) и для SSH-2(rsa/dsa).
[unix1]~ > ls -la .ssh
ls: .ssh: No such file or directory
[unix1]~ >
В данном примере, у нас нет такой директории и соответственно нет личных и публичных ключей,
на рабочей(клиентской машине) они должны быть, ниже будет пример генерации
ключей.
[unix1]~ > ls -la .ssh
total 67
drwxr-xr-x 2 lavr dug 512 19 ноя 15:40 .
drwxr-xr-x 71 lavr dug 7680 22 ноя 15:37 ..
-rw-r--r-- 1 lavr dug 1475 20 ноя 15:13 config
-rw------- 1 lavr dug 537 5 июл 2000 identity
-rw-r--r-- 1 lavr dug 678 29 янв 2001 identity.pub
-rw-r--r-- 1 lavr dug 31270 22 ноя 13:40 known_hosts
В данном примере, у нас есть директория .ssh и все необходимые ключи
для SSH1: identity - личный, identity.pub - публичный. Но
отсутствуют ключи RSA/DSA для SSH2, их необходимо создать.
[unix1]~ > ssh-keygen
Generating public/private rsa1 key pair.
Enter file in which to save the key (/home/lavr/.ssh/identity):
Created directory '/home/lavr/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/lavr/.ssh/identity.
Your public key has been saved in /home/lavr/.ssh/identity.pub.
The key fingerprint is:
6e:28:9e:21:e7:08:60:05:d0:30:fe:9c:b4:c3:19:f7 lavr@unix1.jinr.ru
[unix1]~ >
Генерация RSA ключей для SSH-2:
[unix1]~ > ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/lavr/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/lavr/.ssh/id_rsa.
Your public key has been saved in /home/lavr/.ssh/id_rsa.pub.
The key fingerprint is:
04:b0:65:aa:dc:c0:e4:23:c2:1c:3a:cb:27:d4:5b:b3 lavr@unix1.jinr.ru
[unix1]~ >
Генерация DSA ключей для SSH-2:
[unix1]~ > ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/lavr/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/lavr/.ssh/id_dsa.
Your public key has been saved in /home/lavr/.ssh/id_dsa.pub.
The key fingerprint is:
f3:c7:9b:ad:32:08:c1:d0:8f:2b:ef:ec:f1:77:04:d9 lavr@unix1.jinr.ru
Примечание: passphrase при генерации не отображается на экране, следует различать личные rsa ключи для протокола SSH-1 - identity, для SSH-2 - id_rsa и публичные соответственно.
Использование SSH-2 для работы с машинами под управлением SSH-1:
Все что необходимо, это добавить опцию -1 при использовании команд:
slogin,ssh, для scp указывать опцию -oProtocol=1
Примеры:
[unix1]~ > slogin -1 cv
Enter passphrase for RSA key '/home/lavr/.ssh/identity':
No mail.
No new messages.
cv:/local2/home/lavr>
На машине(рабочая станция - клиент) unix1 - ssh2, на машине cv - ssh1.
Примеры файлов конфигураций(SSH2):
На своей рабочей станции, я люблю запускать X11 через ssh-agent чтобы затем работать со всеми удаленными машинами с sshd, используя авторизацию через публичные ключи: rsa и/или dsa. Для этого необходимо изменить xinitrc или $HOME/.xinitrc и startx:
Теперь достаточно добавить свои публичные ключи, содержимое файлов:
old_rsa(ssh1) - $HOME/.ssh/identity.pub в файл remotehost:$HOME/.ssh/authorized_keys
rsa(ssh2) - $HOME/.ssh/id_rsa.pub в файл remotehost:$HOME/.ssh/authorized_keys2
dsa(ssh2) - $HOME/.ssh/id_dsa.pub в файл remotehost:$HOME/.ssh/authorized_keys2
chmod 755 $HOME/.ssh (или даже 700)
chmod 600 $HOME/.ssh/authorized_keys
chmod 600 $HOME/.ssh/authorized_keys2
Примечание: файлы identity.pub/id_rsa.pub/id_dsa.pub - публичные ключи на локальной машине, в то время как authorized_keys/authorized_keys2 файлы содержащие публичные ключи других машин, с которых разрешен вход через авторизацию по публичным ключам.
Все готово для того чтобы с рабочей машины заходить на удаленные, на которых запущен sshd(2'ой или 3'ей версии) без пароля, через авторизацию публичных ключей.
Если вы привыкли запускать X11 через xdm, то указанную выше
процедуру следует проделать с xsession.
SSH для Windows:
Clients:
поддерживает:
поддерживает:
поддерживает:
поддерживает:
SCP for Windows:
SFTP for Windows:
Client-Server для OS Windows:
Вариации SSH & SSHD for Windows на базе Cygwin:
Коммерческие продукты для OS Windows:
Some links and resources:
Ссылки на месторасположения где находятся оригиналы:
Ссылки на руководства SSH/OpenSSH
Русскоязычные:
Оригиналы in english:
Списки рассылок: