может ли SSH подключаться к EC2-серверу Ubuntu от имени пользователя root, а не от имени пользователя Ubuntu - PullRequest
0 голосов
/ 03 июля 2018

Привет, у меня есть 3 экземпляра Ubuntu EC2 с сервера A, B. Мне нужно подключиться по ssh к серверу C. Я сделал следующие шаги на сервере A, B.

1) Created a ssh key for the username - jenkins 

скопировал открытый ключ с сервера A, а не с сервера B, и добавил на сервер c

2) vi ~/.ssh/authorized_keys 

чем изменил доступ к папке ~ / .ssh и файла author_key следующим образом

3) chmod 600 ~/.ssh/
   chmod 700 ~/.ssh/authorized_keys

теперь с сервера. Команда ssh, выполнившая следующую команду, вошла на сервер C как пользователь ubuntu.

4) ssh -i privatekey ubuntu@12.12.12.12

Когда я делаю то же самое с сервера B, я получаю следующую ошибку

5) ssh -i privatekey ubuntu@12.12.12.12

ошибка

 Warning: Identity file -i not accessible: No such file or directory.
 ssh: Could not resolve hostname /var/lib/jenkins/secrets/mykey: Name or service not known
 jenkins@ip-11-11-11-99:/home/ubuntu# ssh -v -i /var/lib/jenkins/secrets/mykey ubuntu@12.12.12.12
 OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016
 debug1: Reading configuration data /etc/ssh/ssh_config
 debug1: /etc/ssh/ssh_config line 19: Applying options for *
 debug1: Connecting to 12.12.12.12 [12.12.12.12] port 22.
 debug1: Connection established.
 debug1: permanently_set_uid: 0/0
 debug1: identity file /var/lib/jenkins/secrets/mykey type 1
 debug1: key_load_public: No such file or directory
 debug1: identity file /var/lib/jenkins/secrets/mykey-cert type -1
 debug1: Enabling compatibility mode for protocol 2.0
 debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.4
 debug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2 Ubuntu-4ubuntu2.4
 debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.4 pat OpenSSH* compat 0x04000000
 debug1: Authenticating to 12.12.12.12:22 as 'ubuntu'
 debug1: SSH2_MSG_KEXINIT sent
 debug1: SSH2_MSG_KEXINIT received
 debug1: kex: algorithm: curve25519-sha256@libssh.org
 debug1: kex: host key algorithm: ecdsa-sha2-nistp256
 debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
 debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
 debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
 debug1: Server host key: ecdsa-sha2-nistp256 SHA256:28Mc4WE3B22oZ2ClomLspX5gQtwmzdNg82XEHgpI+vE
 debug1: Host '12.12.12.12' is known and matches the ECDSA host key.
 debug1: Found key in /root/.ssh/known_hosts:3
 debug1: rekey after 134217728 blocks
 debug1: SSH2_MSG_NEWKEYS sent
 debug1: expecting SSH2_MSG_NEWKEYS
 debug1: rekey after 134217728 blocks
 debug1: SSH2_MSG_NEWKEYS received
 debug1: SSH2_MSG_EXT_INFO received
 debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
 debug1: SSH2_MSG_SERVICE_ACCEPT received
 debug1: Authentications that can continue: publickey
 debug1: Next authentication method: publickey
 debug1: Offering RSA public key: /var/lib/jenkins/secrets/mykey
 debug1: Authentications that can continue: publickey
 debug1: No more authentication methods to try.
 Permission denied (publickey).

Но когда я запускаю SSH с сервера B для входа в систему как root, он вошел в систему как root

6) ssh -i privatekey root@12.12.12.12

Я запутался в том, что пропустил на сервере B. почему он игнорирует вход в систему как Ubuntu, но root работает. если проблема с правами доступа означает то, как она работает для сервера A.

Кто-то, пожалуйста, помогите спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Привет, я подозреваю, что в Сервере C. при добавлении открытого ключа сервера B вы, возможно, были добавлены только в файл author_keys корневого пользователя. Подтвердить. ssh на сервер C и войдите в систему как пользователь Ubuntu и запустите проверку файла author_keys, используя следующую команду.

 vi ~/.ssh/authorized_keys

Я уверен, что вы не добавили открытый ключ сервера B в этот файл. Вы добавили его в авторизованные ключи пользователя root. если он пуст или присутствует только ключ по умолчанию, добавьте открытый ключ сервера b и повторите попытку. и дайте нам знать, это сработало или нет.

0 голосов
/ 04 июля 2018

Спасибо за размещение вопроса.

Проблема: Возможно, вы сгенерировали ключи с другим пользователем:

Просто следуйте инструкциям ниже, и вам будет хорошо идти:

0) Удалить ~ / .ssh Удалить предыдущие настройки. Не волнуйтесь, мы начнем все сначала

1) Скопировать открытый ключ из A & B на сервер C Войдите на сервер A как пользователь Ubuntu $ ssh-keygen Примите расположение файлов по умолчанию Это сгенерирует ключи $ ssh-copy-id ubuntu @ Введите пароль

2) Выполните те же действия на сервере B 3) Уау !!! Вы готовы идти

Теперь проверьте ваш логин. Вам не нужно менять permisssi

Попробуйте добавить строки ниже в ~ / .ssh / config

Разрешения: -rw-r - r -

ХОСТ С

IdentityFile ~ / .ssh / id_rsa

Пользователь your_user_name

Имя хоста C

...