1

Вообщем хочу сделать без парольный вход на сервер, генерю 2 ключа:
публичный ложу на сервер а секретный оставляю у клиента, на директории .ssh ставлю права 700 а на файлы ключей ставлю права 600.
на сервере в sshd_config

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

в итоге при попытке законектится оно у меня все равно просит ввести пароль. В чем может быть косяк ?

Спросить - стыд минуты, не узнать - стыд всей жизни

2

lone_wolf пишет:

В чем может быть косяк ?

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

Был, был и весь вышел...

3 (24.07.2012 23:10:42 отредактировано lone_wolf)

вот :

+ открыть спойлер
[root@gate lwolf]# ssh -v -i /etc/igor_key igor@gate.example.com.ua
OpenSSH_3.7.1p2, SSH protocols 1.5/2.0, OpenSSL 0.9.6b [engine] 9 Jul 2001
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to gate.example.com.ua [1.1.1.1] port 22.
debug1: Connection established.
debug1: identity file /etc/igor_key 0
debug1: Remote protocol version 1.99, remote software version OpenSSH_3.7.1p2
debug1: match: OpenSSH_3.7.1p2 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_3.7.1p2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'gate.example.com.ua' is known and matches the RSA host key.
debug1: Found key in /root/.ssh/known_hosts:19
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interacti                                                                                        ve
debug1: Next authentication method: publickey
debug1: Next authentication method: keyboard-interactive
Password:
Спросить - стыд минуты, не узнать - стыд всей жизни

4

А вы когда ключи создавали, пароль на ключ задавали?

Был, был и весь вышел...

5

Покажите

ls -l /etc/igor_key

и на сервере

ls -l /home/igor/.ssh/
Был, был и весь вышел...

6

поначалу да, но потом переделал ключи где на вопрос установки пароля я просто кликал enter.

ls -l /home/igor/.ssh/
-rw-------    1 igor   igor        345 Jul 20 21:06 authorized_keys
ls -l /etc/igor_key
-rw-------    1 root     root          541 Jul 20 22:34 /etc/igor_key
Спросить - стыд минуты, не узнать - стыд всей жизни

7 (25.07.2012 10:26:12 отредактировано i2ks)

А как ключи то хоть создавала, в конфиге указали то что ключ будет лежать в иной директории?
Подсказка:
тыц и тыц

It is good day to die ...
MS Windows 10
Заметки о главном...

8

Давайте убедимся, что говорим об одних и тех же файлах:

—  допустим командой

ssh-keygen -t rsa

вы создали пару ключей — id_rsa (приватный) и id_rsa.pub (публичный), по умолчанию, оба ключа записываются в пользовательский каталог ~/.ssh. Если вы оставите парольную фразу пустой, SSH не потребует дополнительной идентификации пользователя при входе в систему.

— командой

ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_host

скопируйте публичный ключ на удалённый компьютер в домашний каталог пользователя, к которому будете в дальнейшем подключаться. Использование ssh-copy-id гарантирует, что публичный ключ получит правильные права доступа на удаленном хосте, но ничто не мешает сделать это вручную, но тогда публичный ключ на удалённом компьютере нужно переименовать вручную в ~/.ssh/authorized_keys (в соответствии с настройками, указанными в /etc/ssh/sshd_config на удалённом компьютере).

Вот воспроизвёл у себя:

— удалённый компьютер, домашний каталог пользователя lupo:

 Консоль:
lupo@gentoo-home ~ % ls -l ~/.ssh
итого 0

— локальный компьютер, домашний каталог root:

 Консоль:
gentoo-laptop ~ # ls -l /root/.ssh
итого 0

— создаю пару ключей на локальном компьютере:

 Консоль:

gentoo-laptop ~ # ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
cd:28:90:ea:66:21:ee:1b:95:e3:06:ff:fc:21:17:e5 root@gentoo-laptop
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|     .           |
|    o    .       |
|   ...  o+       |
|..o+  ..SEo      |
|.o=..  ..        |
| o++ . o         |
|.oo o o .        |
| o.  o..         |
+-----------------+

 Консоль:

gentoo-laptop ~ # ls -l /root/.ssh
итого 8
-rw------- 1 root root 1679 Июл 25 09:48 id_rsa
-rw-r--r-- 1 root root  400 Июл 25 09:48 id_rsa.pub

— копирую ключ на удалённый компьютер:

 Консоль:

gentoo-laptop ~ # ssh-copy-id -i /root/.ssh/id_rsa.pub lupo@gentoo-home
The authenticity of host 'gentoo-home (192.168.1.110)' can't be established.
ECDSA key fingerprint is 90:12:86:28:53:96:90:66:d7:eb:01:b9:f2:a7:cd:37.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gentoo-home,192.168.1.110' (ECDSA) to the list of known hosts.
Password:
Now try logging into the machine, with "ssh 'lupo@gentoo-home'", and check in:

  ~/.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.


 Консоль:

lupo@gentoo-home ~ % ls -l ~/.ssh
итого 4
-rw------- 1 lupo lupo 400 июля  25 09:50 authorized_keys

Внимание:  в данном случае нужно будет ввести сначала yes, разрешая подключение, а затем пароль удалённого пользователя.

— проверяем подключение

 Консоль:

gentoo-laptop ~ # ssh 'lupo@gentoo-home'
Last login: Wed Jul 25 09:50:04 FET 2012 from gentoo-laptop.ha0s.net on ssh
lupo@gentoo-home ~ %

Ну, или воспроизводя вашу ситуацию:

 Консоль:

gentoo-laptop ~ # mv /root/.ssh/id_rsa /tmp/lupo.key
gentoo-laptop ~ # ssh -i /tmp/lupo.key lupo@gentoo-home
Last login: Wed Jul 25 09:54:23 FET 2012 from gentoo-laptop.ha0s.net on pts/1
lupo@gentoo-home ~ %

Был, был и весь вышел...

9

да совершено верно я так и делаю. только на удаленный компьютер копирую с помощью scp. Потом переименовую и потом устанавливаю вручную права. Прост у меня нет команды ssh-copy-id к сожалению. И да я указываю при подключении путь к файлу с помощью ключа -i.

Спросить - стыд минуты, не узнать - стыд всей жизни

10

lone_wolf пишет:

Прост у меня нет команды ssh-copy-id к сожалению.

Дарю ag

#!/bin/sh

# Shell script to install your public key on a remote machine
# Takes the remote machine name as an argument.
# Obviously, the remote machine must accept password authentication,
# or one of the other keys in your ssh-agent, for this to work.

ID_FILE="${HOME}/.ssh/id_rsa.pub"

if [ "-i" = "$1" ]; then
  shift
  # check if we have 2 parameters left, if so the first is the new ID file
  if [ -n "$2" ]; then
    if expr "$1" : ".*\.pub" > /dev/null ; then
      ID_FILE="$1"
    else
      ID_FILE="$1.pub"
    fi
    shift         # and this should leave $1 as the target name
  fi
else
  if [ x$SSH_AUTH_SOCK != x ] && ssh-add -L >/dev/null 2>&1; then
    GET_ID="$GET_ID ssh-add -L"
  fi
fi

if [ -z "`eval $GET_ID`" ] && [ -r "${ID_FILE}" ] ; then
  GET_ID="cat \"${ID_FILE}\""
fi

if [ -z "`eval $GET_ID`" ]; then
  echo "$0: ERROR: No identities found" >&2
  exit 1
fi

if [ "$#" -lt 1 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
  echo "Usage: $0 [-i [identity_file]] [user@]machine" >&2
  exit 1
fi

# strip any trailing colon
host=`echo $1 | sed 's/:$//'`

{ eval "$GET_ID" ; } | ssh $host "umask 077; test -d ~/.ssh || mkdir ~/.ssh ; cat >> ~/.ssh/authorized_keys" || exit 1

cat <<EOF
Now try logging into the machine, with "ssh '$host'", and check in:

  ~/.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

EOF

Убедитесь, что на удалённый(!) компьютер в каталог .ssh/ в домашнем(!) каталоге пользователя, к которому вы будуте подключаться(!), скопирован публичный(!) ключ и переименован в authorized_keys. Точнее, в этот файл дописываются все публичные ключи.

Был, был и весь вышел...

11

Покажите, на всякий случай, полностью файл /etc/ssh/sshd_config.

Был, был и весь вышел...

12

Гляньте здесь, может, что-то упустили.

Был, был и весь вышел...

13

Спасибо большое, обязательно гляну... как только доберусь до рабочего места )))  ag

Если что отпишусь  ab

Спросить - стыд минуты, не узнать - стыд всей жизни