OpenSSH мини-руководство: различия между версиями

Материал из OpenBSD-Wiki
Перейти к навигации Перейти к поиску
Строка 5: Строка 5:
 
Генерируем пару ключей (секретный и публичный):
 
Генерируем пару ключей (секретный и публичный):
  
</pre
+
</pre>
 
% ssh-keygen -t rsa
 
% ssh-keygen -t rsa
 
Generating public/private rsa key pair.
 
Generating public/private rsa key pair.

Версия 09:26, 2 июня 2013

Данная статья 100 % копипаст с www.openbsd.ru

Мини-руководство «шаг за шагом»

Генерируем пару ключей (секретный и публичный):

% ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/andrushock/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/andrushock/.ssh/id_rsa. Your public key has been saved in /home/andrushock/.ssh/id_rsa.pub. The key fingerprint is: 25:95:5b: a6:d7:26:b6:f5:f9:a7:49:d4:a8:2a:0d:7d andrushock@midian

Проверяем корректность прав доступа к директории .ssh и RSA-ключам:

% ls -la .ssh | egrep -v 'total|\.\.'
drwx------ 2 andrushock wsrc 512 Oct 19 20:42 ./
-rw------- 1 andrushock wsrc 1743 Jun 11 03:35 id_rsa
-rw-r--r-- 1 andrushock wsrc 413 Jun 11 03:35 id_rsa.pub

Добавляем публичный ключ в список авторизованных ключей на удаленной системе:

% ssh user@host «cat >> .ssh/authorized_keys» < .ssh/id_rsa.pub

В случае, если подкаталог .ssh и файл .ssh/authorized_keys на удаленной системе не существуют:

% ssh user@host «mkdir -m 700 .ssh; umask 077; cat > .ssh/authorized_keys» < .ssh/id_rsa.pub

Для сохранения парольных фраз к приватным ключам запускаем ssh-agent(1):

% eval `/usr/bin/ssh-agent`
Agent pid 3855

С помощью ssh-add(1) добавляем в память агента парольную фразу от нашего ключа:

% ssh-add
Enter passphrase for /home/andrushock/.ssh/id_rsa:
Identity added: /home/andrushock/.ssh/id_rsa (/home/andrushock/.ssh/id_rsa)

Для проверки просматриваем отпечаток секретного ключа:

% ssh-add -l
2048 25:95:5b: a6:d7:26:b6:f5:f9:a7:49:d4:a8:2a:0d:7d /home/andrushock/.ssh/id_rsa (RSA)

Выполняем вход на удаленный сервер без ввода пароля и парольной фразы:

% ssh user@host
OpenBSD 3.7-current (GENERIC) #1: Mon Aug 1 00:37:53 MSD 2005

Welcome to OpenBSD: The proactively secure Unix-like operating system.

$

Пример использования функций оболочки для упрощения беспарольной аутентификации:

% vi .profile
ssh_agent_start() {
 id1=$HOME/.ssh/identity
 id2=$HOME/.ssh/id_dsa
 id3=$HOME/.ssh/id_rsa
 if [ ! «$SSH_AGENT_PID» ] && [ -f $id1 -o -f $id2 -o -f $id3 ]; then
 eval `/usr/bin/ssh-agent -s`
 /usr/bin/ssh-add < /dev/null
 export SSH_AGENT_SHELL=$$
 fi
}

ssh_agent_stop() {
 if [ «$SSH_AGENT_PID» -a "$SSH_AGENT_SHELL"x = "$$"x ]; then
 /usr/bin/ssh-add -D < /dev/null
 eval `/usr/bin/ssh-agent -sk`
 fi
}

ssh_agent_start
trap ssh_agent_stop 0 1