SSH-доступ по ключам (беспарольный доступ)

Под катом инструкция, как настроить беспарольный SSH-доступ между двумя машинами, используя открытый и закрытый ключи.

Предположим, что у нас есть comp1 и comp2, и нам нужно зайти с comp1 на comp2, при этом пользователь на первом компе – user1, на втором компе – user2.
1. Сначала нужно создать пару ключей на comp1:

user1@comp1$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/user1/.ssh/id_dsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/user1/.ssh/id_dsa.
Your public key has been saved in /home/user1/.ssh/id_dsa.pub.
The key fingerprint is:
9b:b5:1b:e0:1f:d2:ac:45:6c:4a:aa:71:5b:f6:10:00 user1@comp1
The key's randomart image is:
+--[ DSA 1024]----+
|    E            |
|     .           |
|      .          |
|       . .       |
|        S =      |
|       + % .     |
|    . o X B      |
|     + + B +     |
|    . . . +      |
+-----------------+

Вместо DSA можно использовать алгоритм RSA (опция -t rsa), однако он менее надежный.
2. Теперь нужно дописать содержимое публичного ключа id_dsa.pub в файл authorized_keys на втором компьютере:

user1@comp1$ scp ~/.ssh/id_dsa.pub user2@comp2:/home/user2/.ssh/id_dsa.pub
Password:
user1@comp1$ ssh user2@comp2
Password:
user2@comp2$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
user2@comp2$ rm ~/.ssh/id_dsa.pub
user2@comp2$ logout
Connection to comp2 closed.

3. Вуаля – пароль не спрашивается:

user1@comp1$ ssh user2@comp2
user2@comp2$

Похожие статьи

3 thoughts on “SSH-доступ по ключам (беспарольный доступ)”

  1. Спасибо. Раньше хотелось это реализовать, но гуглить было совсем лень 🙂

  2. Запускаю свой скрипт, соединение прошло успешно, но с офисом не соединился для связи использую данную строку:
    echo “Соединяемся с сервером … ”
    COMA_START_FUSE=’sshfs ‘$NAME_USER’@###.###.###.###:/home/user/change /home/’$NAME_USER’/change -o nonempty’
    # echo $COMA_START_FUSE
    if !(test -d /home/$NAME_USER/change/magtest) ;then
    if ! ( $COMA_START_FUSE ) ; then
    my_kill
    err_connect
    fi
    fi

    в этом месте скрипт с начало встал, подождал минут 10, вырубил терминал;
    запустил еще раз на выполнение, интернет подключился опять;
    дальше он мне выдал connect reset by peer, не вопрос перезапустим)- все родной для только для тебя);
    запустил еще раз на выполнение, интернет подключился опять, жду 10 минут все стоит на одном месте..

    Ладно идем дальше:
    подключаем через терминал интернет^
    ifup ppp0
    все завелось
    подключаемся через ssh
    ssh user@IP-адрес —- ключи в директории клиента (/home/user/.ssh/id_rsa.pub) и на сервере(home/user/.ssh/authorized_keys)присутствуют..

    Запустил так еще раз
    ssh -v user@IP-адрес (-v ключ что бы видеть детально подсоединение)
    Либо сразу пишет Connection closed by “мой ip”, либо запрашивает пароль, ввожу и опять Connection closed by “мой ip”, хотя не должен же, ключи присутствуют..
    Да и еще 1 нюанс ip-ник к которому подсоединяюсь это статический адрес–естественно при конекте он с начало заходит на модем, а потом уже на мой сервер убунты, но проброску порта сделана норм.
    В чем проблема?

  3. Почему то у меня не работает ни cat ни scp. Получаю разные ошибки. Просто вообще не работает. Почему это так сложно?? я не понимаю. Какое то дерьмо и такое оказывается сложное. это пиздец. Пацаны, посоветуйте мне институт нормально выучить это.

Leave a Reply

Your email address will not be published. Required fields are marked *