от PerfectStranger(22-09-2006)

рейтинг (10)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Ако сте системен администратор, и ви се налага да работите с няколко отдалечени сървъра с по няколко конзоли на всеки, сигурно ви е писнало (като на мен :-) ) да въвеждате всеки път своите пароли, когато се логвате. В тази статия ще се опитам да ви покажа как може да замените въвеждането на вашите пароли само до въвеждането на една и то само на локалната ви машина, от която работите и то само веднъж – след рестарт . Винаги съм твърдял, че мързелът е най-градивната сила на света :). Методът се основава на размяната на 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 >>