ไม่สามารถเข้าสู่ระบบผ่าน SSH ไปยังบัญชีใด ๆ ที่ใช้ / bin / bash shell บน Synology NAS


30

ฉันกำลังพยายามติดตั้ง bash เป็นเชลล์เริ่มต้นบน ARM Linux ที่ทำงานบนอุปกรณ์ฝังตัว (Synology DS212 + NAS) แต่มีบางอย่างผิดปกติจริงๆและฉันไม่สามารถเข้าใจได้ว่ามันคืออะไร

อาการ:

1) รูทมี / bin / bash เป็นเชลล์เริ่มต้นและสามารถล็อกอินได้ตามปกติผ่าน SSH:

$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash

$ ssh root@NAS
root@NAS's password:
Last login: Sun Dec 16 14:06:56 2012 from desktop
# 


2) joeuser มี / bin / bash เป็นเชลล์เริ่มต้นและได้รับ "การอนุญาตถูกปฏิเสธ" เมื่อพยายามเข้าสู่ระบบผ่านทาง SSH:

$ grep joeuser /etc/passwd
joeuser:x:1029:100:Joe User:/home/joeuser:/bin/bash

$ ssh joeuser@localhost
joeuser@NAS's password:
Last login: Sun Dec 16 14:07:22 2012 from desktop
Permission denied, please try again.
Connection to localhost closed.


3) การเปลี่ยนเปลือกของ joeuser กลับไปที่ / bin / sh:

$ grep joeuser /etc/passwd
joeuser:x:1029:100:Joe User:/home/joeuser:/bin/sh

$ ssh joeuser@localhost
Last login: Sun Dec 16 15:50:52 2012 from localhost
$ 


เพื่อให้สิ่งต่าง ๆ น่าแปลกใจยิ่งขึ้นฉันสามารถล็อกอินด้วย joeuser โดย/bin/bashใช้คอนโซลอนุกรม (!) นอกจากนี้ยังsu - joeuserเป็นรากทำงานได้ดีดังนั้นทุบตีไบนารีเองก็ทำงานได้ดี

ในการกระทำที่สิ้นหวังฉันเปลี่ยน joeuser uid เป็น 0 ใน / etc / passwd แต่ก็ใช้งานไม่ได้ดังนั้นจึงดูเหมือนจะไม่ได้รับอนุญาตที่เกี่ยวข้อง

ดูเหมือนว่าทุบตีกำลังทำการตรวจสอบพิเศษที่ sshd ไม่ชอบและบล็อกการเชื่อมต่อสำหรับผู้ใช้ที่ไม่ใช่รูท บางทีการเรียงลำดับของการตรวจสอบสติ - หรือการจำลองเทอร์มินัล - ที่ก่อให้เกิด SIGCHLD แต่เมื่อเรียกผ่าน ssh

ฉันผ่านทุกรายการใน sshd_config แล้วและวาง SSHD ในโหมดดีบัก แต่ก็ไม่พบสิ่งแปลก ๆ นี่คือฉัน/etc/ssh/sshd_config:

LogLevel DEBUG
LoginGraceTime 2m
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys
ChallengeResponseAuthentication no
UsePAM yes
AllowTcpForwarding no
ChrootDirectory none
Subsystem       sftp    internal-sftp -f DAEMON -u 000


และนี่คือผลลัพธ์จากการ/usr/syno/sbin/sshd -dแสดงความพยายามล้มเหลวของ joeuser ที่พยายามลงชื่อเข้าใช้ด้วย / bin / bash เป็นเชลล์:

debug1: Config token is loglevel
debug1: Config token is logingracetime
debug1: Config token is permitrootlogin
debug1: Config token is rsaauthentication
debug1: Config token is pubkeyauthentication
debug1: Config token is authorizedkeysfile
debug1: Config token is challengeresponseauthentication
debug1: Config token is usepam
debug1: Config token is allowtcpforwarding
debug1: Config token is chrootdirectory
debug1: Config token is subsystem
debug1: HPN Buffer Size: 87380
debug1: sshd version OpenSSH_5.8p1-hpn13v11
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug1: read PEM private key done: type DSA
debug1: private host key: #1 type 2 DSA
debug1: read PEM private key done: type ECDSA
debug1: private host key: #2 type 3 ECDSA
debug1: rexec_argv[0]='/usr/syno/sbin/sshd'
debug1: rexec_argv[1]='-d'
Set /proc/self/oom_adj from 0 to -17
debug1: Bind to port 22 on ::.
debug1: Server TCP RWIN socket size: 87380
debug1: HPN Buffer Size: 87380
Server listening on :: port 22.
debug1: Bind to port 22 on 0.0.0.0.
debug1: Server TCP RWIN socket size: 87380
debug1: HPN Buffer Size: 87380
Server listening on 0.0.0.0 port 22.

debug1: Server will not fork when running in debugging mode.
debug1: rexec start in 6 out 6 newsock 6 pipe -1 sock 9
debug1: inetd sockets after dupping: 4, 4
Connection from 127.0.0.1 port 52212
debug1: HPN Disabled: 0, HPN Buffer Size: 87380
debug1: Client protocol version 2.0; client software version OpenSSH_5.8p1-hpn13v11
SSH: Server;Ltype: Version;Remote: 127.0.0.1-52212;Protocol: 2.0;Client: OpenSSH_5.8p1-hpn13v11
debug1: match: OpenSSH_5.8p1-hpn13v11 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.8p1-hpn13v11
debug1: permanently_set_uid: 1024/100
debug1: MYFLAG IS 1
debug1: list_hostkey_types: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: AUTH STATE IS 0
debug1: REQUESTED ENC.NAME is 'aes128-ctr'
debug1: kex: client->server aes128-ctr hmac-md5 none
SSH: Server;Ltype: Kex;Remote: 127.0.0.1-52212;Enc: aes128-ctr;MAC: hmac-md5;Comp: none
debug1: REQUESTED ENC.NAME is 'aes128-ctr'
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: expecting SSH2_MSG_KEX_ECDH_INIT
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: KEX done
debug1: userauth-request for user joeuser service ssh-connection method none
SSH: Server;Ltype: Authname;Remote: 127.0.0.1-52212;Name: joeuser
debug1: attempt 0 failures 0
debug1: Config token is loglevel
debug1: Config token is logingracetime
debug1: Config token is permitrootlogin
debug1: Config token is rsaauthentication
debug1: Config token is pubkeyauthentication
debug1: Config token is authorizedkeysfile
debug1: Config token is challengeresponseauthentication
debug1: Config token is usepam
debug1: Config token is allowtcpforwarding
debug1: Config token is chrootdirectory
debug1: Config token is subsystem
debug1: PAM: initializing for "joeuser"
debug1: PAM: setting PAM_RHOST to "localhost"
debug1: PAM: setting PAM_TTY to "ssh"
debug1: userauth-request for user joeuser service ssh-connection method password
debug1: attempt 1 failures 0
debug1: do_pam_account: called
Accepted password for joeuser from 127.0.0.1 port 52212 ssh2
debug1: monitor_child_preauth: joeuser has been authenticated by privileged process
debug1: PAM: establishing credentials
User child is on pid 9129
debug1: Entering interactive session for SSH2.
debug1: server_init_dispatch_20
debug1: server_input_channel_open: ctype session rchan 0 win 65536 max 16384
debug1: input_session_request
debug1: channel 0: new [server-session]
debug1: session_new: session 0
debug1: session_open: channel 0
debug1: session_open: session 0: link with channel 0
debug1: server_input_channel_open: confirm session
debug1: server_input_global_request: rtype no-more-sessions@openssh.com want_reply 0
debug1: server_input_channel_req: channel 0 request pty-req reply 1
debug1: session_by_channel: session 0 channel 0
debug1: session_input_channel_req: session 0 req pty-req
debug1: Allocating pty.
debug1: session_new: session 0
debug1: session_pty_req: session 0 alloc /dev/pts/1
debug1: server_input_channel_req: channel 0 request shell reply 1
debug1: session_by_channel: session 0 channel 0
debug1: session_input_channel_req: session 0 req shell
debug1: Setting controlling tty using TIOCSCTTY.

debug1: Received SIGCHLD.
debug1: session_by_pid: pid 9130
debug1: session_exit_message: session 0 channel 0 pid 9130
debug1: session_exit_message: release channel 0
debug1: session_by_tty: session 0 tty /dev/pts/1
debug1: session_pty_cleanup: session 0 release /dev/pts/1
Received disconnect from 127.0.0.1: 11: disconnected by user
debug1: do_cleanup
debug1: do_cleanup
debug1: PAM: cleanup
debug1: PAM: closing session
debug1: PAM: deleting credentials


ที่นี่คุณมีเอาท์พุทเต็มรูปแบบของ sshd -DD ร่วมกับ SSH -vv

ทุบตี:

# bash --version
GNU bash, version 3.2.49(1)-release (arm-none-linux-gnueabi)
Copyright (C) 2007 Free Software Foundation, Inc.

bash binary ถูกคอมไพล์ข้ามจากแหล่งที่มา ฉันยังลองใช้ไบนารีที่คอมไพล์ล่วงหน้าจากการกระจาย Optwareแต่มีปัญหาเดียวกันแน่นอน ฉันตรวจสอบobjdump -xว่าไม่มีไลบรารี่ที่ใช้ร่วมกันแต่พวกเขาทั้งหมดอยู่ที่นั่น

ความคิดเห็นใดที่อาจทำให้เกิด "การอนุญาตนี้ถูกปฏิเสธโปรดลองอีกครั้ง " ฉันเกือบจะดำน้ำในซอร์สโค้ดทุบตีเพื่อตรวจสอบ แต่พยายามหลีกเลี่ยงชั่วโมงไล่บางสิ่งที่อาจโง่

แก้ไข:เพิ่มข้อมูลเพิ่มเติมเกี่ยวกับ bash และระบบ

$ ls -la /bin/bash
-rwxr-xr-x    1 root     root        724676 Dec 15 23:57 /bin/bash

$  file /bin/bash
/bin/bash: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, stripped

$  uname -a
Linux NAS 2.6.32.12 #2661 Mon Nov 12 23:10:15 CST 2012 armv5tel GNU/Linux synology_88f6282_212+

$ grep bash /etc/shells
/bin/bash
/bin/bash2

2
ls -l /bin/bash
Michael Hampton

รายการ / bin / bash อยู่ใน / etc / shells หรือไม่
tink

ใช่มันอยู่ในรายการ / etc / shells และสิทธิ์อนุญาต 0755 เพิ่มไว้ด้านบน
Gui Ambros

เป็นไปได้ว่ามีบางอย่างกำลังทำงานอยู่ในไฟล์. bashrc ของเขา คุณสามารถ cat ~ joeuser / .bashrc แล้วโผล่สคริปต์โปรไฟล์ของเขาได้ไหม? คุณสามารถลองเรียกใช้ / bin / bash ขณะที่ลงชื่อเข้าใช้ด้วย
vicfn

ไม่ ~ joeuser / .ssh และไม่มีสคริปต์โปรไฟล์ เป็นผู้ใช้เปล่าที่ฉันเพิ่งสร้างขึ้นเพื่อทดสอบ
Gui Ambros

คำตอบ:


39

สำหรับการอ้างอิงในอนาคต: หลังจากใช้เวลาค้นคว้าและแก้จุดบกพร่องหลายชั่วโมงเกินไปในที่สุดฉันก็ค้นพบสาเหตุของปัญหา

รุ่น OpenSSH ที่ใช้โดย Synology เป็นรุ่นที่กำหนดเองสูงซึ่งไม่ทำงานเหมือนรหัสต้นฉบับ มีแฮ็กจำนวนมากและการปรับแต่ง Ad-hoc เช่นการตรวจสอบเพิ่มเติมก่อนที่จะยอมรับการเข้าสู่ระบบเพื่อดูว่าบริการ SSH เปิดใช้งานอยู่ในเว็บอินเตอร์เฟสหรือตัดอักขระพิเศษ (;, |, ') จากคำสั่ง rsync หรือ .. . รอให้มัน ... หลีกเลี่ยงผู้ใช้ปกติจะใช้ที่แตกต่างกันกว่าเปลือก bin / sh / หรือ / ใช่รหัสยากภายในไบนารี

นี่คือส่วนของรหัสจาก OpenSSH 5.8p1 ซึ่งจัดทำโดย Synology ในซอร์สโค้ด(DSM4.1 - สาขา 2636) ของไฟล์session.c:

void do_child(Session *s, const char *command)
{
...

#ifdef MY_ABC_HERE
   char szValue[8];
   int RunSSH = 0;
   SSH_CMD SSHCmd = REQ_UNKNOWN;

   if (1 == GetKeyValue("/etc/synoinfo.conf", "runssh", szValue, sizeof(szValue))) {
           if (strcasecmp(szValue, "yes") == 0) {
                   RunSSH = 1;
           }
   }

   if (IsSFTPReq(command)){
           SSHCmd = REQ_SFTP;
   } else if (IsRsyncReq(command)){
           SSHCmd = REQ_RSYNC;
   } else if (IsTimebkpRequest(command)){
           SSHCmd = REQ_TIMEBKP;
   } else if (RunSSH && IsAllowShell(pw)){
           SSHCmd = REQ_SHELL;
   } else {
           goto Err;
   }

   if (REQ_RSYNC == SSHCmd) {
           pw = SYNOChgValForRsync(pw);
   }
   if (!SSHCanLogin(SSHCmd, pw)) {
           goto Err;
   }
   goto Pass;

 Err:
   fprintf(stderr, "Permission denied, please try again.\n");
   exit(1);

 Pass:
   #endif /* MY_ABC_HERE */
...
}


อย่างที่คุณจินตนาการIsAllowShell(pw)ได้นั่นคือผู้กระทำผิด:

static int IsAllowShell(const struct passwd *pw)
{
     struct passwd *pUnPrivilege = NULL;
     char *szUserName = NULL;
     if (!pw || !pw->pw_name) {
             return 0;
     }
     szUserName = pw->pw_name;
     if(!strcmp(szUserName, "root") || !strcmp(szUserName, "admin")){
             return 1;
     }
     if (NULL != (pUnPrivilege = getpwnam(szUserName))){
             if (!strcmp(pUnPrivilege->pw_shell, "/bin/sh") || 
                     !strcmp(pUnPrivilege->pw_shell, "/bin/ash")) {
                     return 1;
             }
     }
     return 0;
}


ไม่แปลกใจเลยว่าทำไมฉันถึงมีพฤติกรรมแปลก ๆ เช่นนี้ เพียงเปลือกหอย bin / sh / และ / bin / เถ้าจะได้รับการยอมรับสำหรับผู้ใช้ที่แตกต่างกันกว่ารากหรือผู้ดูแลระบบ และสิ่งนี้โดยไม่คำนึงถึง uid (ฉันได้ทดสอบแล้วยังทำให้joeuser uid = 0 และมันไม่ทำงานตอนนี้มันชัดเจนว่าทำไม)

เมื่อระบุสาเหตุที่แก้ไขได้ง่าย: เพียงแค่ลบการเรียกร้องให้IsAllowShell () ฉันใช้เวลาสักครู่เพื่อให้ได้การกำหนดค่าที่ถูกต้องสำหรับ cross-compile openssh และการพึ่งพาทั้งหมด แต่มันก็ใช้ได้ดีในที่สุด

หากใครสนใจในการทำเช่นเดียวกัน (หรือพยายามที่จะข้ามรวบรวมโมดูลเคอร์เนลหรือไบนารีสำหรับ Synology อื่น ๆ ) นี่เป็นรุ่นของฉัน Makefile ได้รับการทดสอบกับแหล่งที่มาของ OpenSSH-5.8p1และทำงานได้ดีกับรุ่นที่ใช้ Marvell Kirkwood mv6281 / mv6282 CPU (เช่น DS212 +) ฉันใช้โฮสต์ที่ใช้ Ubuntu 12.10 x64

บรรทัดล่าง: การปฏิบัติที่ไม่ดีรหัสที่แย่และเป็นตัวอย่างที่ดีของสิ่งที่ไม่ควรทำ ฉันเข้าใจว่าบางครั้ง OEM ต้องพัฒนาการปรับแต่งพิเศษ แต่พวกเขาควรคิดสองครั้งก่อนที่จะขุดลึกเกินไป ไม่เพียงส่งผลให้เกิดรหัสที่ไม่สามารถรักษาได้สำหรับพวกเขาเท่านั้น แต่ยังสร้างปัญหาที่ไม่คาดฝันได้ทุกประเภท โชคดีที่ GPL มีอยู่เพื่อให้พวกเขาซื่อสัตย์ - และเปิดกว้าง


4
ท่านที่ทำงานในดวงดาวในการตรวจสอบปัญหานี้และดึงม่านกลับจากเวที Synology ฉันต้องยอมรับฉันคิดว่า Diskstation ของฉันค่อนข้างสูงจนถึงตอนนี้เพราะมันมีประโยชน์มากและเมื่อ bootstrapped ตอนนี้ยังใช้สคริปต์บางอย่างสำหรับฉันภายใต้ task scheduler ใหม่ แต่คุณได้เปิดเผยข้อบกพร่องในการออกแบบสายตาสั้น ๆ ที่นี่ ฉันยังคงพอใจกับ Diskstation แต่จะคำนึงถึงการโพสต์ของคุณ โหวตทั้งโพสต์และคำตอบ
เบอร์นาร์ด Dy

โหวตขึ้นสำหรับความพยายาม หากฉันไม่ต้องการรบกวนการเชื่อมต่อซีเรียลฉันแค่ต้องการเปลี่ยนเชลล์เริ่มต้น/bin/shเป็นมีวิธีการทำเช่นนั้นหรือไม่?
Vicary

ทำไมการทำงานร่วมกันของสิ่งนี้จึงเกินกว่าฉันโดยสิ้นเชิง: (
แกร์ฮาร์ดเบอร์เกอร์

ฉันเปลี่ยน/bin/ashไป/bin/ash.realและเชื่อมโยงzshที่/bin/ash... เพื่อให้ห่างไกลทุกอย่างดูเหมือนจะปรับ ... o_o
x1a0

7

เพื่อหลีกเลี่ยงปัญหาและเนื่องจากฉันติดตั้ง bash ผ่าน ipkg และฉันไม่แน่ใจว่า / opt จะสามารถใช้งานได้ (ติดตั้งอย่างถูกต้อง) ฉันเพียงแค่ใส่สิ่งต่อไปนี้ใน. profile ของฉัน

[ -x /opt/bin/bash ] && exec /opt/bin/bash

ในขณะที่ / etc / passwd มี / bin / ash เป็นเปลือก


1

มาดูกัน. มันแยกได้เป็นเชลล์เดี่ยวและคุณกำลังดูเอาต์พุต debug ของ sshd ดังนั้นมันจึงไม่ใช่ปัญหาการอนุญาตให้เขียนทับได้ด้วย ~ joeuser / .ssh นั่นคือสิ่งที่ทำให้คนส่วนใหญ่

คุณได้ลองสร้างผู้ใช้ปกติเพิ่มเติม (เช่นไม่ใช่ joeuser) เพื่อให้แน่ใจว่าประสบปัญหาเดียวกันหรือไม่ ที่จะแยกมันเพื่อกำหนดค่าของผู้ใช้กับการกำหนดค่าทั้งระบบ

หากเป็นปัญหาทั่วทั้งระบบสิ่งต่อไปที่ฉันจะดูก็คือไฟล์การกำหนดค่าที่ใช้ร่วมกันเช่น / etc / โปรไฟล์ที่ได้รับมาจากทุกคน อาจมีบล็อกตามเงื่อนไขที่ไม่เริ่มทำงานหากชื่อผู้ใช้เป็นรูต (ไม่มี userid ที่มีประสิทธิภาพเนื่องจากคุณทำการทดสอบแล้ว)

ตรวจสอบ dmesg เพื่อรายงานข้อผิดพลาดในการแบ่งเซ็กเมนต์หากคุณยังไม่ได้ทำในกรณีที่มีบางสิ่งบางอย่างผิดปกติเกิดขึ้น


ขอบคุณแอนดรู ตรวจสอบ dmesg และไม่มีอะไรแน่นอน การสร้างผู้ใช้ใหม่ไม่ได้ช่วยอะไรเลยอย่างชัดเจนว่ามันเป็นปัญหาของระบบ และ joeuser สามารถเข้าสู่ระบบได้ตามปกติถ้าฉันเปลี่ยนเปลือกกลับไปที่ / bin / ash ซึ่งออกกฎใด ๆ / etc / โปรไฟล์หรืออื่น ๆ (ซึ่งฉันยังตรวจสอบ btw) มันเป็นเพียงกับที่ไม่ใช่รูตใช้ทุบตีผ่าน ssh เนื่องจากจุดนี้มันไม่ได้เป็นปัญหาจริง (ฉันสามารถอยู่กับมันได้เหมือนตอนนี้) แต่มันทำให้ฉันรำคาญที่จะยอมรับว่าฉันไม่สามารถหาสาเหตุของพฤติกรรมแปลก ๆ นี้ได้ มันเป็นระบบที่กำหนดขึ้นหลังจากทั้งหมด มีต้องจะเรียงลำดับของคำอธิบายบางอย่าง ...
กุย Ambros

1

ลอง / etc / ssh / sshd_config
ค้นหา AllowUsers

หากมีลองเพิ่ม joeuser ที่นั่นเพียงแค่ชื่อผู้ใช้

มันอาจถูกบล็อกใน pam ... ฉันจำไม่ได้ว่ามันคือไฟล์อะไร ...


ไม่ใช่กรณี ถ้ามันเป็นปัญหากับ AllowUsers มันจะไม่ให้ฉันเข้าสู่ระบบด้วย joeuser เมื่อฉันเปลี่ยนเปลือกเป็น / bin / ash ดูเหมือนว่านี่จะไม่เกี่ยวข้องกับความปลอดภัยใด ๆ หรือการกำหนดค่าอื่น ๆ มันอาจจะเรียงลำดับของวิธีการจับทุบตีหลอกขั้วผ่าน SSH บางเมื่อเทียบกับเถ้า csh ฯลฯ
กุย Ambros

1

openssh ที่แก้ไขแล้วจะมองหา/bin/shเชลล์หรือไม่?

วิธีแก้ปัญหาง่าย ๆ แล้ว:

ln -fs / bin / bash / bin / sh


สิ่งนี้จะเปลี่ยนเชลล์สำหรับผู้ใช้ทั้งหมดและไม่ใช่เฉพาะเชลล์ที่ต้องการ bash นอกจากนี้การอัปเกรดใหม่จะลบลิงก์สัญลักษณ์ (แม้ว่าการแก้ไข openssh ก็มีปัญหาเดียวกัน) อย่างไรก็ตามเรื่องนี้ได้รับการแก้ไขตามที่อธิบายไว้ข้างต้น
Gui Ambros

ตกลงจริง แต่เนื่องจากฉันเป็นผู้ใช้เพียงคนเดียวใน NAS ของฉันโซลูชันนี้ใช้งานได้สำหรับฉัน อย่างไรก็ตามขอขอบคุณสำหรับการชี้ให้เห็นสิ่งที่คุณค้นพบ
Ponytech

0

ลองติดตั้ง Bash ใหม่และดูว่ามีประโยชน์หรือไม่


ไม่ฉันได้รับการทุบตีจากสองแหล่งที่แตกต่างกัน (หนึ่งจากการกระจาย Optware และฉันก็รวบรวม 3.2 จากแหล่งที่มาของตัวเอง) และปัญหาเดียวกัน ฉันไปสุดขีดแม้กระทั่งทุบตี 4.2 และใช้แผ่นแปะ (ทั้งหมด 39 อัน) และการคอมไพล์ข้าม พฤติกรรมเดียวกันแน่นอน ทำงานกับรูทได้รับอนุญาตถูกปฏิเสธสำหรับผู้อื่น การเดาครั้งสุดท้ายของฉันคือไบนารีของ OpenSSH ซึ่งเป็นการติดตั้งแบบเดิมโดยเฟิร์มแวร์ของ Synology นี่เป็นชิ้นเดียวที่ฉันยังไม่ได้แตะเลย ฉันจะลองดาวน์โหลดแหล่งข้อมูลล่าสุดและทำการคอมไพล์เพื่อดูว่าเกิดอะไรขึ้น
Gui Ambros

2
แปลกไม่แน่ใจ แต่น่าจะเป็นปัญหา authconfig ldap ทำงานบนเซิร์ฟเวอร์หรือไม่ คุณสามารถส่งไฟล์บันทึกการรักษาความปลอดภัยและไฟล์ข้อความแบบเรียลไทม์ถึงฉันในเวลาที่ล็อกอินล้มเหลวได้หรือไม่
Pratap

2
นอกจากนี้ยังล็อกอินเป็นรูทไปยังเซิร์ฟเวอร์และให้เชลล์ผู้ใช้เป็น / bin / bash และลองเปลี่ยนเป็นผู้ใช้โดยใช้ su - ชื่อผู้ใช้ แสดงผลลัพธ์ของสิ่งนี้ด้วย
Pratap

0

ในกรณีที่ทุกคนสะดุดในสิ่งนี้เพราะพวกเขาทำผิดพลาดแบบเดียวกันฉัน:

ใช่: $ sudo usermod -s /bin/bash your_username

ไม่มี $ sudo usermod -s bash your_username

ที่สองจะส่งผลให้การอนุญาตถูกปฏิเสธเมื่อ ssh'ing in

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.