Аутентификация С открытым ключом перестала работать при использовании-i параметра на команде ssh

Я должен сделать основанную на открытом ключе аутентификацию на двух серверах Linux.

Машина 2 (192.168.3.132)

  • имя пользователя: vfx_30
  • домашний dir: /home/vfx_30
  • ключи ssh:
    • /home/vfx_30/.ssh/id_rsa
    • /home/vfx_30/.ssh/id_rsa.pub

Машина 1 (192.168.3.131)

расположение файла пользователя vfx_30 с открытым ключом /root/keys/vfx_30.pub (machine2 /home/vfx_30/.ssh/id_rsa.pub копируется здесь),

Не способный войти в использование открытого ключа от машины 1 к машине 2 использования команды ниже:

ssh -v -i /root/keys/vfx_30.pub vfx_30@192.168.3.132

Обратите внимание на то, что:

  1. Нет названного vfx_30 никакого пользователя на машине 1 / authorized_keys не используется здесь
  2. Используя -i параметр для передачи открытого ключа.
  3. Выполнение этой команды как пользователь root на машине 1
  4. /etc/ssh/sshd_config:

    RSAAuthentication yes
    PubkeyAuthentication yes
    

Подробная машина входа в систему 1

OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 192.168.3.132 [192.168.3.132] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/keys/vfx_30.pub type 1
debug1: identity file /root/keys/vfx_30.pub-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) 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 '192.168.3.132' is known and matches the RSA host key.
debug1: Found key in /root/.ssh/known_hosts:1
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,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Cannot determine realm for numeric host address

debug1: Unspecified GSS failure.  Minor code may provide more information
Cannot determine realm for numeric host address

debug1: Unspecified GSS failure.  Minor code may provide more information


debug1: Unspecified GSS failure.  Minor code may provide more information
Cannot determine realm for numeric host address

debug1: Next authentication method: publickey
debug1: Offering public key: /root/keys/vfx_30.pub
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: password
vfx_30@192.168.3.132's password: 

Контрольный журнал на машине 2 (/var/log/audit/audit.log)

type=CRYPTO_KEY_USER msg=audit(1407837882.656:3259): user pid=27704 uid=0 auid=0 ses=171 msg='op=destroy kind=server fp=e9:69:4f:ad:06:d9:cc:7e:bb:0a:7e:57:03:ea:24:a1 direction=? spid=27704 suid=0  exe="/usr/sbin/sshd" hostname=? addr=192.168.3.131 terminal=? res=success'
type=CRYPTO_KEY_USER msg=audit(1407837882.656:3260): user pid=27704 uid=0 auid=0 ses=171 msg='op=destroy kind=server fp=56:f6:8d:7e:f3:33:c3:6c:f1:52:49:57:3a:9b:ed:d7 direction=? spid=27704 suid=0  exe="/usr/sbin/sshd" hostname=? addr=192.168.3.131 terminal=? res=success'
type=CRYPTO_SESSION msg=audit(1407837882.656:3261): user pid=27703 uid=0 auid=0 ses=171 msg='op=start direction=from-client cipher=aes128-ctr ksize=128 spid=27704 suid=74 rport=59764 laddr=192.168.3.132 lport=22  exe="/usr/sbin/sshd" hostname=? addr=192.168.3.131 terminal=? res=success'
type=CRYPTO_SESSION msg=audit(1407837882.656:3262): user pid=27703 uid=0 auid=0 ses=171 msg='op=start direction=from-server cipher=aes128-ctr ksize=128 spid=27704 suid=74 rport=59764 laddr=192.168.3.132 lport=22  exe="/usr/sbin/sshd" hostname=? addr=192.168.3.131 terminal=? res=success'
type=USER_AUTH msg=audit(1407837882.704:3263): user pid=27703 uid=0 auid=0 ses=171 msg='op=pubkey acct="vfx_30" exe="/usr/sbin/sshd" hostname=? addr=192.168.3.131 terminal=ssh res=failed'
-3
задан 14 August 2014 в 14:56
3 ответа

Вы не можете соединиться с открытым ключом.

Открытый ключ (id_rsa.pub) должен быть расположен на стороне сервера, а закрытый ключ (id_rsa) - на стороне клиента.

Для установки ключа на Machine 2:

cat id_rsa.pub >> /home/vfx_30/.ssh/authorized_keys  # sometimes this file is called authorized_keys2

И подключения с Machine 1:

ssh -i id_rsa vfx_30@192.168.3.132
4
ответ дан 5 December 2019 в 21:51

Вы пытаетесь использовать клавишу назад. Вы создали пару ключей, которая может быть использована для соединения ssh с машиной 2.

Далее вы пытаетесь установить соединение с машиной 1, которая вообще не имеет пары ключей.

Чтобы оно заработало, сначала создайте пару ключей на машине 1. Вы можете создать её с помощью ssh-keygen, так же как вы сделали это на машине 2.

Опционально отредактируйте ~/.ssh/id_rsa.pub и вставьте дату в комментарий в самом конце строки. Я нахожу полезным иметь там дату, так что в любом месте, куда бы я ни поместил открытый ключ, я смогу увидеть, какая это версия, на случай, если позже мне придется ее повернуть.

Далее возьмите содержимое ~/.ssh/id_rsa. pub с машины 1 и добавьте это в ~/.ssh/authorized_keys на машине 2. (Создайте файл authorized_keys в процессе, если его еще не существовало).

.
0
ответ дан 5 December 2019 в 21:51

Короче говоря, параметр ssh -i должен указывать на файл закрытого ключа ( обычно "id_rsa").

человек ssh

... -i файл_идентификации Выбирает файл, из которого считывается идентификатор (закрытый ключ) для проверки подлинности RSA или DSA. По умолчанию это ~ / .ssh / identity для версии протокола 1 и ~ / .ssh / id_rsa и ~ / .ssh / id_dsa для версии протокола 2. Файлы идентификации также могут быть указаны для каждого хоста в файле конфигурации. Возможно иметь несколько параметров -i (и несколько идентификаторов, указанных в файлах конфигурации). ssh также попытается загрузить информацию о сертификате из имени файла, полученного добавлением -cert.pub к именам файлов идентификаторов.

0
ответ дан 5 December 2019 в 21:51

Теги

Похожие вопросы