Quantcast
Channel: Библиотека знаний
Viewing all articles
Browse latest Browse all 1318

Генерация ключа / ssh-gen - [Генерация ключа / ssh-gen]

$
0
0

Генерация ключа / ssh-gen

ssh-keygen-t rsa -c"admin@d7.debian.loc"ssh-keygen-t dsa -c"admin@d7.debian.loc" 
$ cat ~/.ssh/id_rsa.pub |ssh user@hostname"cat >> ~/.ssh/authorized_keys" 
$ ssh user@hostname
$ sudosed-i"s/^\#RSAAuthentication.*$/RSAAuthentication yes/g"/etc/ssh/sshd_config
$ sudosed-i"s/^\#PubkeyAuthentication.*$/PubkeyAuthentication yes/g"/etc/ssh/sshd_config
$ sudo/etc/init.d/sshd restart 
  • -b - устанавливает количество бит в ключе/длина ключа 2048, 4096
  • -t - Тип сгенерированного ключа (доступно: rsa, dsa etc)
  • -c - Комментарий к кдючу

Генерация ключа локально

Ключи находятся в каталоге ~/.ssh:

$ ls -al ~/.ssh/
drwx------   6 ctrld  staff   204 Oct 23 17:39 .
drwxr-xr-x+ 40 ctrld  staff  1360 Oct 22 21:01 ..
-rw-r--r--   1 ctrld  staff    78 Sep 26 20:02 config
-rw-------   1 ctrld  staff   668 Oct 23 17:39 id_dsa
-rw-r--r--   1 ctrld  staff   626 Oct 23 17:39 id_dsa.pub
-rw-r--r--   1 ctrld  staff  2410 Oct 13 11:44 known_hosts

Если каталог .ssh отсутствует, то достаточно попытаться зайти куда-нибудь по ssh. Если файлов id_dsa.* (я использую DSA, но можно и RSA) нет, то их нужно сгенерировать. Во время генерации ssh-keygen спросит passphrase (можно просто нажать Enter и она при входе не будет спрашиваться).

$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/Users/ctrld/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/ctrld/.ssh/id_dsa.
Your public key has been saved in /Users/ctrld/.ssh/id_dsa.pub.
The key fingerprint is:
e3:9a:18:f0:4c:6e:3e:44:8f:d3:a3:cc:c2:db:e0:b5 ctrld@129-149-179-94.pool.ukrtel.net
The key's randomart image is:
+--[ DSA 1024]----+
|                 |
|                 |
|                 |
|    .            |
|  ...+  S        |
|   *+ +. .       |
| ..+Bo ..        |
| .o*=+ o         |
|  ooE.o          |

+-----------------+

Если вы предпочитаете RSA, то:

$ ssh-keygen -t rsa

Копируем строку с публичным ключом – он нам понадобится на удалённом компьютере (remote, а не removed :)

Для DSA:

$ cat ~/.ssh/id_dsa.pub
ssh-dss AAAAB3............Pbec= ctrld@hostname.local

Для RSA:

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3............IJAw== ctrld@hostname.local

Действия на удалённом компьютере

Конечно же, на удалённом сервере должен быть запущен SSH-сервер. Обычно это OpenSSH, но встречаются и недобитые динозавры с коммерческими SSH-серверами (это вызывает моё искреннее удивление – да, есть и такое).

Заходим на удалённый сервер:

$ ssh hg.mirocow.com@remote.net

Проверяем, есть ли каталог .ssh:

$ ls -al ~/.ssh

Если его нет, то делаем простой трюк – “ssh hg.mirocow.com@localhost”, и .ssh создаётся автоматически.

Редактируем файл с публичными ключами, и добавляем соответствующий скопированный ключ.

Для DSA (authorized_keys):

$ vi ~/.ssh/authorized_keys

Вариант:

$ echo "ssh-dss AAAAB3............Pbec= ctrld@hostname.local" >> ~/.ssh/authorized_keys

Для RSA (authorized_keys):

$ vi ~/.ssh/authorized_keys

Сохраняем файл, и (!) обязательно меняем права доступа на 0600, иначе файл публичных ключей не будет восприниматься:

$ chmod 600 ~/.ssh/authorized_keys*

Выходим с удалённого компьютера и пытаемся зайти на него снова по ssh. Если всё было сделано правильно, то будет запрошен passphrase, а если он был пустой, то будет произведён вход без запроса.

Убеждаемся что права на папку .ssh даны от пользователя hg.mirocow.com

$ ls -la
drwxr-xr-x  7 hg.mirocow.com hg.mirocow.com 4096 2011-10-11 01:17 .
drwxr-xr-x  4 root           root           4096 2011-10-07 22:04 ..
drwx------  2 hg.mirocow.com root           4096 2011-10-11 01:19 .ssh
$ ls -la
drwx------ 2 hg.mirocow.com root           4096 2011-10-11 01:19 .
drwxr-xr-x 7 hg.mirocow.com hg.mirocow.com 4096 2011-10-11 01:17 ..
-rw-r--r-- 1 root           root            434 2011-10-11 03:01 authorized_keys

Копирование ключа на удаленный хост ssh-copy-id

$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@remote-host
  • remote-host - IP или DNS
  • -i указываем тип передаваемого ключа на удаленный хост (~/.ssh/id_rsa.pub или ~/.ssh/id_dsa.pub)

Альтернатива – скрипт ssh-copy-id

#!/bin/sh 
KEY="$HOME/.ssh/id_dsa.pub" 
if[!-f ~/.ssh/id_dsa.pub ];thenecho"private key not found at $KEY"echo"* please create it with "ssh-keygen-t dsa" *"echo"* to login to the remote host without a password, don't give the key you create with ssh-keygen a password! *"exitfi 
if[-z$1];thenecho"Please specify user@host.tld as the first switch to this script"exitfi 
echo"Putting your key on $1... " 
KEYCODE=`cat$KEY`ssh-q$1"mkdir ~/.ssh 2>/dev/null; chmod 700 ~/.ssh; echo "$KEYCODE" >> ~/.ssh/authorized_keys; chmod 644 ~/.ssh/authorized_keys" 
echo"done!"

FAQ

У меня работает авторизация по ключам, но как сделать не возможным подключение по паролям?

ChallengeResponseAuthentication no

Не принимаются dsa ключи

В свете недавно выявленных угроз, новая версия openssh-7.0p1 прекращает использование ключей ssh-dss , также известных как DSA. Детали см. в новостях проекта openssh.

Отладка подключения

ssh -vvv -o PreferredAuthentications=publickey name@host -p port
  • -o PreferredAuthentications=publickey - опции аунтефикации

Удаления ключа из known_hosts

ssh-keygen -R my-host.com

Viewing all articles
Browse latest Browse all 1318

Trending Articles


Vimeo 10.7.1 by Vimeo.com, Inc.


UPDATE SC IDOL: TWO BECOME ONE


KASAMBAHAY BILL IN THE HOUSE


Girasoles para colorear


Presence Quotes – Positive Quotes


EASY COME, EASY GO


Love with Heart Breaking Quotes


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


Vimeo 10.7.0 by Vimeo.com, Inc.


FORECLOSURE OF REAL ESTATE MORTGAGE


FORTUITOUS EVENT


Pokemon para colorear


Sapos para colorear


Smile Quotes


Letting Go Quotes


Love Song lyrics that marks your Heart


RE: Mutton Pies (frankie241)


Hato lada ym dei namar ka jingpyrshah jong U JJM Nichols Roy (Bah Joy) ngin...


Long Distance Relationship Tagalog Love Quotes