Как подключаться
Подключение к серверу Oracle подразумевает использование SSH-туннелей. Для комфортной работы с SSH, настоятельно рекомендуется создать пару открытый/закрытый ключ, и использовать авторизацию по ключу.
Генерация ключей в PuTTY
Запускаем программу PuTTYgen, выбираем SSH2-RSA, длина ключа 2048, нажимаем Generate, после чего возим мышкой по окошку. После того, как ключи сгенерились, вводим пароль на ключ. Пароль должен быть по-настоящему хорошим и сложным. Сохраняем публичный и приватный ключи.
Генерация ключей в Linux
[sabitov@client ~]$ ssh-keygen -b 2048 -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/sabitov/.ssh/id_rsa): # тут просто Enter Enter passphrase (empty for no passphrase): # тут пароль на ключ Enter same passphrase again: # его повтор Your identification has been saved in /home/sabitov/.ssh/id_rsa. Your public key has been saved in /home/sabitov/.ssh/id_rsa.pub. The key fingerprint is: 08:f9:0b:9c:53:9f:6c:87:c1:a9:7b:f4:cd:02:8d:99 sabitov@client.ru
в результате имеем 2 файла
[sabitov@client ~]$ ls -lhA .ssh/ итого 8,0K -rw-------. 1 sabitov sabitov 1,8K Окт 16 15:30 id_rsa -rw-r--r--. 1 sabitov sabitov 406 Окт 16 15:30 id_rsa.pub
Перенос ключей на сервер
На сервере необходимо выполнить:
[sabitov@ora ~]$ touch .ssh/authorized_keys [sabitov@ora ~]$ chmod 600 .ssh/authorized_keys
Используя текстовый редактор и копи-паст вставить в этот файл публичный ключ (один ключ на одной строке, файл может содержать много разных ключей.)
- .ssh/authorized_keys
ssh-rsa AAAAB3Nza.........EPR/OQ== sabitov@client
строка начинается с «ssh-rsa AAAA», потом многабукаф и заканчивается «== comment», в данном случае «== sabitov@client», комментарий можно произвольным образом менять.
Подключение к серверу через PuTTY
Запускаем Pageant, через его иконку в трее добавляем приватный ключ. Проверяем, что ключ добавился (View Keys).
Запускаем PuTTY, вводим имя сервера, Open, вводим логин. Если все было сделано правильно, подключение происходит без пароля.
Настройка PuTTY
Запускаем PuTTY, выбираем Connection|Data, вводим логин в поле auto-login username. Выбираем Connection|SSH, указываем версию протокола 2 only Разворачиваем пункт SSH, выбираем пункт Tunnels. Снимаем галочки с пунктов «Local port … other hosts» и «Remote … only)» В Source port вводим 1521, Destination 127.0.0.1:1521, выбираем Local и IPv4, Нажимаем Add.
Выбираем категорию Session, указываем DNS имя сервера с Oracle и имя для сохраняемых настроек (a la «oracle + port forwarding»), говорим Save
Закрываем окно PuTTY. Через иконку Pageant в трее открываем коннект к серверу.
Подключение к серверу из Linux
Единственный раз надо выполнить
eval `ssh-agent -s` ssh-add
Если открывается несколько терминалов, то в одном проделываются указанные выше команды, а в остальных выставляются правильные значения переменных окружения:
sabitov@client ~ $ env | grep SSH SSH_AGENT_PID=7777 SSH_AUTH_SOCK=/tmp/ssh-yAAKoCdu1643/agent.7777
Копируем мышкой эти значения в соседний терминал и говорим экспорт:
sabitov@client ~ $ SSH_AGENT_PID=7777 sabitov@client ~ $ SSH_AUTH_SOCK=/tmp/ssh-yAAKoCdu1643/agent.7777 sabitov@client ~ $ export SSH_AGENT_PID SSH_AUTH_SOCK
Собственно для подключения:
ssh -L 1521:127.0.0.1:1521 server.name
Настройка клиента Oracle на винде
Выкачиваем файл http://file.sabitov.su/oracle_4_stud/oracle-all-in-1.zip
Распаковываем в произвольную директорию. Прописываем путь до директории oracle в переменных окружения PATH и TNS_ADMIN
Настройка клиента Oracle на Linux
Установить клиента Oracle используя пакетный менеджер. Проверить куда показывает переменная окружения TNS_ADMIN:
sabitov@client ~ $ env | grep TNS TNS_ADMIN=/etc/oracle/
Выкачать файл http://file.sabitov.su/ora/oracle-all-in-1.zip, распаковать. Дописать содержимое файла tnsnames.ora из архива к содержимому файла ${TNS_ADMIN}/tnsnames.ora
Запуск tora
Запускаем tora из директории с клиентом Oracle. В диалоге New Connection:
- Выбираем тип подключения Oracle (TNS)
- Выбираем базу данных XESSH
- Вводим имя пользователя и имя схемы (они совпадают)
- Вводим пароль
- Нажимаем Test…
Если всё сделано правильно, должно случиться сообщение Connection Succeeded.
В диалоге New Connection нажимаем OK