Когда я отправляю ssh из своего ящика (Arch Linux) на удаленный ящик (сервер Fedora) с помощью ключа, он работает с одним пользователем (user1), но не с user2. Оба пользователя используют один и тот же ключ ssh: тот, что находится в домашней папке ssh user2. ( /home/user2/.ssh/id_rsa
с правильными режимами).
На удаленном хосте у обоих пользователей есть домашний каталог с одним и тем же файлом ~ / .ssh / authorized_keys
.
РЕДАКТИРОВАТЬ
По запросу, некоторый файл конфигурации:
На удаленном хосте :
/ etc / ssh / sshd_config
Port XXXX
Allowusers user1 user2
PermitRootLogin without-password
#PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#HostbasedAuthentication no
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
$ journalctl -u sshd
Accepted publickey for user1 from XX.YY.XX.YY port XXXX ssh2: RSA SHA256:WT722lmf2CkXC8T6hGScDl+wZW71Ls3/U2W8FHh+vK4 <-- when connecting as user1
Connection closed by authenticating user user2 XX:YY:XX:YY port XXX [preauth] <-- when connecting as user2
user2 (нерабочий) домашний каталог:
ls -la /home/user2
drwx------. 2 user2 user 4.0K Jan 31 19:18 .ssh/
ls -la /home/user2/.ssh
-rw-------. 1 user2 user2 393 Jan 31 18:12 authorized_keys
Selinux включен на сервере (по умолчанию для Fedora). Обратите внимание, что user1 является существующим пользователем по умолчанию, когда сервер новый, а user2 был добавлен мной.
user1 (рабочий)
ls -Za /home/user1
unconfined_u:object_r:ssh_home_t:s0 .ssh/
ls -Za /home/user1/.ssh
unconfined_u:object_r:ssh_home_t:s0 ./ unconfined_u:object_r:user_home_dir_t:s0 ../ unconfined_u:object_r:ssh_home_t:s0 authorized_keys
user2 (неработающий)
ls -Za /home/user2
unconfined_u:object_r:unlabeled_t:s0 .ssh/
ls -Za /home/user2/.ssh
unconfined_u:object_r:unlabeled_t:s0 ./ unconfined_u:object_r:user_home_dir_t:s0 ../ unconfined_u:object_r:unlabeled_t:s0 authorized_keys
diff: r: unlabeled vs r: ssh_home_
В локальном ящике :
user2@hortensia ➤➤ ~ % ls -al .ssh
-rw------- 1 user2 user2 1.8K Jan 16 18:19 id_rsa
-rw------- 1 user2 user2 396 Jan 16 18:19 id_rsa.pub
user2@hortensia ➤➤ ~ % ls -al
drwx------ 2 user2 user2 4.0K Feb 1 08:06 .ssh/
Я не могу понять, почему ssh работает для пользователя user1, а не user2. На удаленном хосте я остановил sshguard и iptables , но это ничего не меняет. sshd_config очень простой, имеет строку Allowusers с user1 и user2 и разрешает соединение с ключом. При запуске ssh в подробном режиме я вижу разницу в сообщении при подключении user1 или user2.
user1
$ ssh -vv -p XX user1@XX.YY.XX.YY
....................
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:WT722lmf2CkXC8T6hGScDl+wZW71Ls3/U2W8FHh+vK4 /home/user2/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
debug2:input_userauth_pk_ok:SHA256:WT722lmf2CkXC8T6hGScDl+wZW71Ls3/U2W8FHh+vK4
debug1: Authentication succeeded (publickey).
Authenticated to XX.YY.XX.YY ([XX.YY.XX.YY]:XXXX).
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug2: channel_input_open_confirmation: channel 0: callback start
debug2: fd 3 setting TCP_NODELAY
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug2: channel 0: request shell confirm 1
debug2: channel_input_open_confirmation: channel 0: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel_input_status_confirm: type 99 id 0
debug2: PTY allocation request accepted on channel 0
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 0
debug2: shell request accepted on channel 0
Last login: Thu Feb 1 07:08:04 2018 from XX.YY.XX.YY
[user1@dahlia ~]$
Теперь при подключении к user2
$ ssh -vv -p XX user2@XX.YY.XX.YY
...........
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:WT722lmf2CkXC8T6hGScDl+wZW71Ls3/U2W8FHh+vK4 /home/user2/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
debug1: Trying private key: /home/user1/.ssh/id_dsa
debug1: Trying private key: /home/user1/.ssh/id_ecdsa
debug1: Trying private key: /home/user1/.ssh/id_ed25519
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
user2@XX.YY.XX.YY: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Спустя более одного дня я все еще не могу исправить это ошибка. Спасибо за помощь / подсказки.
Npụta gị ls -l
na-egosi na mgbakwunye na ikikere nkịtị selinux concepts are setịpụrụ:
ls -la /home/user2/.ssh
-rw-------. 1 user2 user2 393 Jan 31 18:12 authorized_keys
^ this dot indicates additional selinux contextes
Your ls -Z
output na egosi na pịnye ụdị nke ndekọ gị .ssh
na faịlị ndị dị na ya ka atọrọ ka unlabeled_t
:
ls -Za /home/user2/.ssh
unconfined_u:object_r:unlabeled_t:s0 ./
Ọnọdụ a ka a ga- ya.
Gbaa
chcon -R -t ssh_home_t .ssh
iji tọọ onodu recursively na .ssh
ndekọ.