다른 (루트가 아닌) 사용자로서 Synology DSM 5에 비밀번호가없는 SSH (암호 없음)


24

비밀번호 (공개 키 인증)없이 루트가 아닌 Synology Disk Station으로 ssh하려고합니다.

암호없이 루트로 ssh하려고하면 작동합니다. 다른 사용자에게 똑같은 단계를 수행해도 작동하지 않습니다. 항상 암호를 묻습니다 (암호 사용도 가능합니다).

나는 이것에 대한 모든 가이드를 따랐지만 새로운 5.0 버전이 아니라 DSM 4.x에 대한 것이라고 생각합니다.

SSH 디버그 로그

-vvv 플래그로 시도 할 때 디버그 로그는 다음과 같습니다.

aether@aether-desktop:~$ ssh -vvv aether@aether-ds.local
OpenSSH_6.2p2 Ubuntu-6ubuntu0.2, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to aether-ds.local [192.168.2.149] port 22.
debug1: Connection established.
debug3: Incorrect RSA1 identifier
debug3: Could not load "/home/aether/.ssh/id_rsa" as a RSA1 public key
debug1: identity file /home/aether/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/aether/.ssh/id_rsa-cert type -1
debug1: identity file /home/aether/.ssh/id_dsa type -1
debug1: identity file /home/aether/.ssh/id_dsa-cert type -1
debug1: identity file /home/aether/.ssh/id_ecdsa type -1
debug1: identity file /home/aether/.ssh/id_ecdsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2p2 Ubuntu-6ubuntu0.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p1-hpn13v11
debug1: match: OpenSSH_5.8p1-hpn13v11 pat OpenSSH_5*
debug2: fd 3 setting O_NONBLOCK
debug3: load_hostkeys: loading entries for host "aether-ds.local" from file "/home/aether/.ssh/known_hosts"
debug3: load_hostkeys: found key type RSA in file /home/aether/.ssh/known_hosts:1
debug3: load_hostkeys: loaded 1 keys
debug3: order_hostkeyalgs: prefer hostkeyalgs: ssh-rsa-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-rsa
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug2: kex_parse_kexinit: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-rsa,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-dss-cert-v00@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib
debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib
debug2: kex_parse_kexinit: 
debug2: kex_parse_kexinit: 
debug2: kex_parse_kexinit: first_kex_follows 0 
debug2: kex_parse_kexinit: reserved 0 
debug2: kex_parse_kexinit: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,zlib@openssh.com
debug2: kex_parse_kexinit: none,zlib@openssh.com
debug2: kex_parse_kexinit: 
debug2: kex_parse_kexinit: 
debug2: kex_parse_kexinit: first_kex_follows 0 
debug2: kex_parse_kexinit: reserved 0 
debug2: mac_setup: found hmac-md5
debug1: kex: server->client aes128-ctr hmac-md5 none
debug2: mac_setup: found hmac-md5
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: RSA f1:57:47:37:47:d4:5c:cd:a7:a4:5a:9c:a3:e8:1d:13
debug3: load_hostkeys: loading entries for host "aether-ds.local" from file "/home/aether/.ssh/known_hosts"
debug3: load_hostkeys: found key type RSA in file /home/aether/.ssh/known_hosts:1
debug3: load_hostkeys: loaded 1 keys
debug3: load_hostkeys: loading entries for host "192.168.2.149" from file "/home/aether/.ssh/known_hosts"
debug3: load_hostkeys: found key type RSA in file /home/aether/.ssh/known_hosts:2
debug3: load_hostkeys: loaded 1 keys
debug1: Host 'aether-ds.local' is known and matches the RSA host key.
debug1: Found key in /home/aether/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /home/aether/.ssh/id_rsa (0x7f4ee2f47200),
debug2: key: /home/aether/.ssh/id_dsa ((nil)),
debug2: key: /home/aether/.ssh/id_ecdsa ((nil)),
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/aether/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/aether/.ssh/id_dsa
debug3: no such identity: /home/aether/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /home/aether/.ssh/id_ecdsa
debug3: no such identity: /home/aether/.ssh/id_ecdsa: No such file or directory
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
aether@aether-ds.local's password: 

도움을 주셔서 감사합니다.

내가 지금까지 시도한 것들

  • / etc / ssh / sshd_config (RSAAuthentication, PubkeyAuthentication, AuthorizedKeysFile)를 확인하십시오.
  • .ssh / * perms 및 소유권을 확인하십시오. 여러 조합을 시도했습니다.
  • ~ / .profile에서 HOME var를 확인하십시오.
  • synoservicectl --sshd를 다시 시작하고 전체 NAS를 다시 시작하여 sshd를 다시 시작했습니다.

왜 이러고 싶니? 보호되지 않은 키만으로 공개 키 인증을하지 않습니까?
Daniel B

안녕 다니엘, 내가 정확히 달성하려고하는 것이지만 루트가 아닌 사용자에게는 작동하지 않습니다.
Vlad A Ionescu

클라이언트의 공개 키 가 사용자 authorized_keys 파일에 있습니까?
Daniel B

예, ssh-copy-id로 복사했습니다. 그리고 루트 사용자의 루트와 동일하게 권한이 부여 된 동일한 권한이 부여 된 key_files 파일입니다.
Vlad A Ionescu

지금 계정에 비밀번호가 있습니까? 시스템의 보안 정책에 따라 암호가없는 사용자는 로그인이 금지 될 수 있습니다.
Daniel B

답변:


49

나는 같은 문제가 있었다. "/ usr / syno / sbin / sshd -d"를 사용하여 DiskStation에서 디버그 모드로 sshd 인스턴스를 실행 한 다음 "ssh user @ DiskSation -vvv"를 사용하여 연결하고 서버에 디버그 정보를 얻었습니다.

......

debug1 : temporary_use_uid : 1026/100 (e = 0 / 0)

debug1 : 공개 키 파일 /var/services/homes/user/.ssh/authorized_keys 시도

debug1 : fd 5 지우기 O_NONBLOCK

인증 거부 : 디렉토리 / volume1 / homes / user의 소유권 또는 모드가 잘못되었습니다

......

홈 폴더에도 올바른 권한이 필요하다는 것을 깨달았습니다.

cd /var/services/homes/
chown <username> <username>
chmod 755 <username>

"user"와 같은 실제 사용자 이름으로 바꿉니다.

마지막으로 문제가 해결되었습니다!


2
당신과 마찬가지로, chmod 755내 홈 디렉토리 에서 실행하면 DSM 6에서이 문제가 해결되었습니다.
David Pärsson

디버그 로그를 얻는 것이 항상 올바른 솔루션입니다. 감사! 한 가지 추가 사항 : 전화 /usr/bin/sshd -p 2222(및 연결 ssh -p 2222)는 디버깅을 위해 다른 포트에서 실행됩니다. 그렇지 않으면 ssh deamon을 종료하면 액세스가 손실 될 위험이 있습니다.
Alex

16

홈 디렉토리를 755로 chmod해야합니다 (기본적으로 신디사이저는 777입니다)

nas> ls -al
total 28
drwxrwxrwx  6 root     root  4096 2014-07-13 03:00 .
drwxr-xr-x 13 root     root  4096 2014-07-13 03:00 ..
drwxrwxrwx  3 admin    users 4096 2014-07-13 03:00 admin
...
nas> chmod 755 /home/admin
nas> ls -al
total 28
drwxrwxrwx  6 root     root  4096 2014-07-13 03:00 .
drwxr-xr-x 13 root     root  4096 2014-07-13 03:00 ..
drwxr-xr-x  3 admin    users 4096 2014-07-13 03:00 admin

이것은 chmod 755 /home/admin실제로 권한이 변경 되었음을 보여주지 않습니다 .
user20342

그래, 그건 사실이야. 그래도 방금 붙여 넣은 예제를 함께 보냈고 놓쳤습니다. 답을 편집하겠습니다.
spuriousdata

5

.ssh및 authorized_keys에 대한 권한이 /home/aether/올바르게 설정되었으므로 홈 디렉토리 ( )에 대한 권한 이 올바르게 설정되어 있는지 확인하십시오 ( chmod 755 /home/aether/).

기본 권한 ( 711) 으로 로그인 할 수 없으며 권한 을 변경 한 후에 작동했습니다.

건배 스테판


2

나는 위와 같은 모든 문제를 두 번 또는 세 번 확인했지만 여전히 작동하지 않았습니다. 마지막으로, ssh 데몬이 / home / nonrootuser 디렉토리가 없기 때문에 잘못된 위치에서 authorized_keys 파일을 찾고 있음을 깨달았습니다.

경로를 만들거나 심볼릭 링크를 만들어야합니다 (두 가지 옵션이 효과가 없었습니다). 또는 마지막으로 작동 한 것은 sshd_config 파일에 두 줄을 추가하는 것입니다.

Match User nonrootuser
AuthorizedKeysFile      /var/services/homes/nonrootuser/.ssh/authorized_keys

이 방법으로 클라이언트에서 ssh-copy-id를 통해 추가하는 키가 서버 (동의어)가 비 루트 사용자에 대한 연결을 설정하기 위해 제공하는 키와 동일한 지 확인하십시오.


2

Synology 포럼 의이 스레드 덕분에 dsm 6.0과 동일한 문제가 해결되었습니다.

사용자 홈 권한이 너무 관대 한 것 같습니다 ¿? ¿ ?? ¿ ¿?

chmod 755 /var/services/homes/[username]

... 그리고 지금은 작동합니다!


1

그 질문과 매우 비슷해 보입니다.

/programming/12839106/scp-between-2-remote-hosts-without-password/12945060#12945060

.ssh 디렉토리 또는 파일에 적절한 속성이없는 것 같습니다.

여기 내 것이 있습니다 :

-rw-r--r--  1 root root   393 Aug 13  2012 if_rsa.pub
-rw-------  1 root root  1675 Aug 13  2012 if_rsa
-rw-r--r--  1 root root   393 Aug 20  2012 id_rsa.pub
-rw-------  1 root root  1675 Aug 20  2012 id_rsa
-rw-------  1 root root  4606 Aug  7  2013 authorized_keys
drwx------  2 root root  4096 Feb 24 09:59 .
-rw-r--r--  1 root root 11354 Mar 25 17:28 known_hosts

또한 /etc/pam.d/sshd루트가 아닌 부분에 제한이있을 수있는 내용을 확인하십시오 . 만일을 위해서. 이 링크는 RHEL의 경우 PAM에 대해 설명합니다. 도움이 될 수 있습니다 : https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Managing_Smart_Cards/PAM_Configuration_Files.html

문제가 못생긴 머리를 보여주는 위치는 다음과 같습니다.

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/aether/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password

id_rsa를 허용하지 않으며 계속합니다.

debug1: Trying private key: /home/aether/.ssh/id_dsa
debug1: Trying private key: /home/aether/.ssh/id_ecdsa

포기하고 암호에 의존

debug1: Next authentication method: password

이제 질문은 왜 id_rsa를 좋아하지 않습니까?


Grzegorz, .ssh 디렉토리는 perm 700, .ssh / authorized_keys는 perms 600을 가지고 있습니다.
Vlad A Ionescu

@VladAlexandruIonescu : 다른 속성 및 PAM 관련 정보를 보여주는 응답을 업데이트하여 더 많은 테스트 영역을 제공 할 수 있습니다.
Grzegorz

고마워, Grzegorz, 그러나 여전히 운이 없다. 나는 당신과 똑같은 파마를 시도했습니다. 또한 /etc/pam.d/sshd를 둘러 보았지만 루트 사용자를 구별하는 것은 없습니다 : gist.github.com/vlad-alexandru-ionescu/e6a2ee6133c7e9e45273 .
Vlad A Ionescu

@VladAlexandruIonescu : 모든 사용자에게이 문제가 있습니까? "다른 사용자를 위해"한 명만 표시 할 수 있습니다. 이 사용자 로그인을 사용하여 퍼티를 할 수 있습니까, 아니면 루트로 로그인 한 다음 su입니까?
Grzegorz

예, 모든 비 루트 사용자 모든 사용자 (루트 또는 루트가 아닌)로 ssh / putty를 사용할 수 있습니다. 그러나 클라이언트의 공개 키를 서버의 authorized_keys에 추가했지만 루트가 아닌 경우 비밀번호를 묻습니다.
Vlad A Ionescu

1

나는이 같은 문제가 있었다. authorized_keys, 파일 홈 및 .ssh 디렉토리에 대한 올바른 권한을 설정 한 후에도 여전히 Diskstation에 SSH를 연결할 수 없었습니다.

에서 정보를 읽은 후 techanic.net 나는 또한 나의 설정했던 것을 발견 로그인 쉘을 내에서 /etc/passwd파일. /sbin/nologin기본적 으로 설정되어 있습니다. 로 변경 한 후 /bin/shDiskstation에 SSH로 연결할 수있었습니다.


0

방금 5.0 대신 DSM 5.1에서 이와 동일한 문제가 발생했습니다. 나열된 해결책 중 어느 것도 문제를 해결하지 못했습니다. 제 경우에는에 대한 권한 /var/services/homes/<user>/.ssh/authorized_keys이 올바르지 않습니다. 다음을 실행하면 문제가 해결되었습니다.

chmod 600 /var/servieces/homes/<user>/.ssh/authorized_keys
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.