от PerfectStranger(22-09-2006)
рейтинг (10)
[ добре ]
[ зле ]
Вариант за отпечатване Ако сте системен администратор, и ви се налага да работите с няколко отдалечени сървъра с по няколко конзоли на всеки, сигурно ви е писнало (като на мен :-) ) да въвеждате всеки път своите пароли, когато се логвате. В тази статия ще се опитам да ви покажа как може да замените въвеждането на вашите пароли само до въвеждането на една и то само на локалната ви машина, от която работите и то само веднъж – след рестарт . Винаги съм твърдял, че мързелът е най-градивната сила на света :). Методът се основава на размяната на RSA и/или DSA ключове и автентификация .
И така – няма да се спирам на това как се инсталира и конфигурира OpenSSH. (след като си сисадмин би трябвало да работи вече при теб)
За целта ще ни трябва и keychain (emerge, apt-get, YAST за инсталирането на пакета в завсимост от вашата дистрибуция).
Стъпка 1.Генериране на RSA и DSA ключове: |
eaman@linux:~>ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/seaman/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/seaman/.ssh/id_dsa.
Your public key has been saved in /home/seaman/.ssh/id_dsa.pub.
The key fingerprint is:
57:17:87:fb:09:76:5e:53:4f:ee:05:cf:31:8f:09:48 seaman@linux
seaman@linux:~> |
Аналогично и за RSA ключа.
Сега трябва да копираме генерирания ключ на отдалечената машина:
Стъпка 2 |
seaman@linux:~>scp ~/.ssh/id_dsa.pub seaman@SERVER:/home/seaman/.ssh/id_dsa_home.pub |
Заменете SERVER с името или IP адреса на отдалечената ви машина
Сега нека да се логнем нормално на отдалечената машина и да изпълним следното:
Стъпка 3 |
seaman@linux:~>ssh seaman@SERVER
password:
seaman@SERVER:~>cd ~/.ssh
seaman@SERVER:~/.ssh>cat id_dsa_home.pub >> authorized_keys
seaman@SERVER:~/.ssh>exit |
Сега отворете ~/.bash_profile или ~/.bashrc в зависимост от вашата дистрибуция с любимия си редактор и добавете следното:
Стъпка 4 |
keychain ~/.ssh/id_rsa ~/.ssh/id_dsa
. ~/.keychain/${HOSTNAME}-sh |
Сега след като стартирате Х терминал или конзола ще ви подкани да въведете паролата/ите за RSA и/или DSA ключа.
Примерен код |
KeyChain 2.4.2.1; http://www.gentoo.org/projects/keychain
Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL
* Initializing /home/seaman/.keychain/linux-sh file...
* Initializing /home/seaman/.keychain/linux-csh file...
* Starting ssh-agent
* Initializing /home/seaman/.keychain/linux-sh-gpg file...
* Initializing /home/seaman/.keychain/linux-csh-gpg file...
* Starting gpg-agent
* Adding 2 ssh key(s)...
Enter passphrase for /root/.ssh/id_rsa:
Identity added: /home/seaman/.ssh/id_rsa (/home/seaman/.ssh/id_rsa)
Identity added: /home/seaman/.ssh/id_dsa (/home/seaman/.ssh/id_dsa)
seaman@linux:~> |
На локалната машина трябва да изпълните и това:
Примерен код |
seaman@linux:~> ssh-add ~/.ssh/id_dsa
Enter passphrase for /home/seaman/.ssh/id_dsa:
Identity added: /home/seaman/.ssh/id_dsa (/home/seaman/.ssh/id_dsa)
seaman@linux:~> |
за DSA ключа и ssh-add ~/.ssh/id_rsa за RSA ключа преди да можете да се логвате на отдалечената машина без парола.
Резултата от всичките тези магии е, че при следващото логване в SERVER няма да ни се нала га пишем пароли а това неминуемо ще ускори работата ни:
Примерен код |
KeyChain 2.4.2.1; http://www.gentoo.org/projects/keychain
Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL
* Found existing ssh-agent (3684)
* Found existing gpg-agent (3703)
* Known ssh key: /home/seaman/.ssh/id_rsa
* Known ssh key: /home/seaman/.ssh/id_dsa
seaman@linux:~> ssh seaman@SERVER
Last login: Fri Sep 22 18:04:07 2006 from linux
Have a lot of fun...
seaman@SERVER:~> |
Внимание!!! Това решение води и до негативни последствия - забравят се пароли :)
1.http://www.gentoo.org/proj/en/keychain/
2.https://www.cs.utk.edu/help/doku.php?id=remote:ssh-keys&s=ssh%20agent
3.http://www.openssh.com/
4.http://www.google.com/
<< Конфигуриране на мултимедийна клавиатура в Linux | Как да инсталираме, използваме и тестваме с quemu seamlessrd >>
|