27 ноября, 2014, обновлено 18 июня, 2016

ssh

ssh авторизация, по алиасу, rsa ключём, без ввода пароля

ssh авторизация

$ ssh userNameOnServer@myServer.net -p22

Алиас

Вместо ssh userNameOnServer@myServer.net удобнее же написать ssh myserv

Создадим файл config тут ~/.ssh/config:

Host myserv
	HostName myServer.net
        Port 12345 (если надо)
	User userNameOnServer
	IdentityFile ~/.ssh/id_rsa

Выставляем права

chmod 600 ~/.ssh/config

Или (если у нас стоит стоит cygwin) правим файл C:\cygwin\etc\ssh_config из под пользователя cyg_server.

RSA ключи

Проверить наличие ключей SSH

$ cd ~/.ssh
ls -la

Сгенерировать пару ключей. Хелп на всякий случай $ ssh-keygen help

$ ssh-keygen -t rsa

или c пометкой (GitHub просит):

$ ssh-keygen -t rsa -C "your_email@example.com"

Парафразу можно пропустить Enter.

Копируем публичную часть на сервер

$ ssh-copy-id -i ~/.ssh/id_rsa.pub myserv

или с портом

ssh-copy-id -i ~/.ssh/id_rsa_mykey.pub -p49425 userlogin@serverhost

или

$ ssh myserv
$ cd ~
$ mkdir .ssh
$ chmod 700 .ssh
$ exit
$ scp ~/.ssh/id_rsa.pub  myserv:~/.ssh/authorized_keys

ну или

cat > .ssh/authorized_keys
вставляем публичную часть rsa ключа, звершаем редактирование файла Ctrl+B или Ctrl+Z
chmod 600 .ssh/authorized_keys

Запрашивает пароль?

Закрываем-открываем консоль, $ ssh myserv и !@#$%^&* — опять запрашивает пароль, значит наш агент не видит ключи, значит делаем ssh-add.

Получаем Could not open a connection to your authentication agent.

Значит ssh агент не добавлен, делаем $ eval `ssh-agent.exe`, после чего $ ssh-add, и, наконец, пароль при вводе $ ssh myserv не спрашивает и конектится. В кратце:

eval `ssh-agent.exe`
ssh-add
ssh myserv

Агент

При каждом новом сеансе нужно запускать ssh-agent и добавлять ключи. Чтобы этого не делать каждый раз, необходимо создать скрипт, который будет выполняться срразу после старта консоли:

$ cd ~
$ cat > .bashrc
#! /bin/bash 
eval `ssh-agent -s` 
ssh-add ~/.ssh/*_rsa

Debag ssh

$ ssh -vT userNameOnServer@myServer.net
$ ssh --help

3 комментария к публикации „ssh авторизация, по алиасу, rsa ключём, без ввода пароля“

1. 17 Июля, 2016 | Святослав

А что вместо userNameOnServer@myServer.net надо писать? И что означает строка myserv?

2. 17 Июля, 2016 | Святослав

И можно, пожалуйста, примеры для гитхаба? А то не понятно как опубликовать ключ для конкретного репозитория, который находится в организации, которую я создал, а не в моем аккаунте.

3. 17 Июля, 2016 | Максим Златов

to Святослав: Вместо userNameOnServer@myServer.net нужно писать: ЛогинНаТвоемСервереКоторыйТыКупилИлиАрендовал@АдресТвоегоСерверВИнтернете а myserv это сокращенное название для твоего сервера, чтобы не писать длинную строчку выше.

Добавить комментарий

2010–2018 Блог Максима Златова, контакты

PHP execution time: 0.0078 s.
SQL execution time: 0.0001 s. (select publication with comments)

Яндекс.Метрика