LINUX-BG   Адрес : http://www.linux-bg.org
SSH без парола :)
От: PerfectStranger
Публикувана на: 22-09-2006
Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=386313302
Ако сте системен администратор, и ви се налага да работите с няколко отдалечени сървъра с по няколко конзоли на всеки, сигурно ви е писнало (като на мен :-) ) да въвеждате всеки път своите пароли, когато се логвате. В тази статия ще се опитам да ви покажа как може да замените въвеждането на вашите пароли само до въвеждането на една и то само на локалната ви машина, от която работите и то само веднъж – след рестарт . Винаги съм твърдял, че мързелът е най-градивната сила на света :). Методът се основава на размяната на 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 >>

    Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук, но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора, както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.

    All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
    Linux is copyright by Linus Torvalds.
    © Линукс за българи ЕООД 2007
    © Slavei Karadjov 1999 - 2006

    All rights reserved.

    Изпълнението отне: 1 wallclock secs ( 0.17 usr + 0.02 sys = 0.19 CPU)