SSH tanpa kata sandi (tanpa kata sandi) pada Synology DSM 5 sebagai pengguna (non-root) lainnya


24

Saya mencoba ssh ke stasiun disk Synology saya tanpa kata sandi (otentikasi kunci publik), tetapi sebagai non-root.

Ketika saya mencoba ssh sebagai root tanpa kata sandi, itu berfungsi. Mengikuti langkah yang sama persis untuk pengguna lain tidak berfungsi. Itu selalu meminta kata sandi (juga, menggunakan kata sandi berfungsi juga).

Saya telah mengikuti setiap panduan di luar sana untuk ini, tapi saya pikir mereka semua untuk DSM 4.x daripada versi 5.0 yang baru.

Log debug SSH

Inilah log debug ketika saya mencoba dengan flag -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: 

Setiap bantuan dihargai.

Hal yang saya coba sejauh ini

  • Periksa / etc / ssh / sshd_config (RSAAuthentication, PubkeyAuthentication, AuthorizedKeysFile).
  • Periksa .ssh / * izin dan kepemilikan. Mencoba beberapa kombinasi.
  • Periksa HOME var di ~ / .profile.
  • Restart sshd via synoservicectl --restart sshd dan dengan me-restart seluruh NAS.

Mengapa Anda ingin melakukan ini? Bukankah otentikasi kunci publik dengan kunci yang tidak dilindungi cukup?
Daniel B

Hai Daniel, itulah yang ingin saya capai, tetapi tidak berhasil untuk pengguna non-root.
Vlad A Ionescu

Apakah kunci publik klien Anda ada di file pengguna authorized_keys ?
Daniel B

Yup, saya salin dengan ssh-copy-id. Dan itu adalah file yang diotorisasi sama persis (tetapi dengan perms kanan) dari pengguna root, yang bekerja ketika root.
Vlad A Ionescu

Apakah akun Anda memiliki kata sandi sekarang? Bergantung pada kebijakan keamanan sistem Anda, pengguna tanpa kata sandi dapat dilarang masuk.
Daniel B

Jawaban:


49

Saya memiliki masalah yang sama. Saya menjalankan instance sshd dalam mode debug pada DiskStation menggunakan "/ usr / syno / sbin / sshd -d", kemudian saya terhubung ke sana menggunakan "ssh user @ DiskSation -vvv" dan saya mendapatkan info debug di server:

......

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

debug1: mencoba file kunci publik /var/services/homes/user/.ssh/authorized_keys

debug1: fd 5 membersihkan O_NONBLOCK

Otentikasi ditolak: kepemilikan buruk atau mode untuk direktori / volume1 / rumah / pengguna

......

Saya menyadari bahwa folder beranda juga memerlukan izin yang tepat:

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

Dan ganti dengan nama pengguna yang sebenarnya, seperti "pengguna".

Akhirnya, masalah terpecahkan!


2
Sama seperti untuk Anda, menjalankan chmod 755pada direktori home saya memecahkan masalah ini untuk saya pada DSM 6.
David Pärsson

Itu selalu merupakan solusi yang tepat untuk mendapatkan log debug. Terima kasih! Hanya satu tambahan: Panggil /usr/bin/sshd -p 2222(dan terhubung dengan ssh -p 2222) sehingga ia berjalan pada port yang berbeda untuk debugging - jika tidak, Anda berisiko kehilangan akses jika Anda keluar dari ssh deamon
Alex

16

Anda perlu chmod direktori home Anda ke 755 (synology memilikinya di 777 secara default)

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

Ini tidak menunjukkan bahwa chmod 755 /home/adminsebenarnya mengubah izin.
user20342

Ya itu benar. Namun, saya hanya menggabungkan contoh yang ditempelkan dan saya melewatkannya. Saya akan mengedit jawabannya.
spuriousdata

5

Karena izin Anda .sshdan otor_keys diatur dengan benar, cukup verifikasi bahwa izin ke direktori home Anda ( /home/aether/) diatur dengan benar ( chmod 755 /home/aether/).

Saya tidak bisa masuk dengan izin default ( 711) dan berhasil setelah mengubah izin.

Cheers Stephan


2

Saya memiliki masalah yang sama, double dan triple memeriksa semua hal di atas dan masih tidak berhasil. Akhirnya, saya menyadari bahwa daemon ssh sedang mencari file Authorized_keys di tempat yang salah, karena tidak ada direktori / home / nonrootuser.

Anda harus membuat path atau membuat symlink (dua opsi itu tidak bekerja untuk saya), atau yang akhirnya berhasil adalah menambahkan dua baris tersebut di file sshd_config:

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

Dengan cara ini, Anda memastikan bahwa kunci yang Anda tambahkan melalui ssh-copy-id dari klien adalah sama dengan yang ditawarkan server (synology) untuk membuat sambungan bagi pengguna non-pemroteksi.


2

Masalah yang sama di sini dengan dsm 6.0, dipecahkan berkat utas ini di forum Synology

Tampaknya izin pengguna di rumah terlalu banyak ¿? ¿?? ¿¿?

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

... dan sekarang berhasil!


1

Itu terlihat sangat mirip dengan pertanyaan itu:

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

Saya menduga bahwa direktori atau file .ssh Anda tidak memiliki atribut yang tepat.

Ini milik saya:

-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

Juga, harap periksa konten /etc/pam.d/sshdyang mungkin membatasi penggunaan non-root. Untuk berjaga-jaga. Tautan ini menjelaskan PAM dalam hal RHEL. Ini dapat membantu: https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Managing_Smart_Cards/PAM_Configuration_Files.html

Di sinilah masalah menunjukkan kepalanya yang jelek:

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

Itu tidak menerima id_rsa, dan melanjutkan:

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

Itu menyerah, dan bergantung pada kata sandi

debug1: Next authentication method: password

Jadi sekarang, pertanyaannya adalah mengapa ia tidak suka id_rsa?


Hai Grzegorz, dir .ssh memiliki perm 700 dan .ssh / official_keys memiliki perms 600.
Vlad A Ionescu

@VladAlexandruIonescu: Saya telah memperbarui tanggapan saya yang menunjukkan atribut lainnya, dan informasi mengenai PAM yang dapat memberi Anda lebih banyak area untuk diuji.
Grzegorz

Terima kasih, Grzegorz, tetapi masih belum berhasil. Saya sudah mencoba perms yang sama persis seperti milik Anda. Juga telah melihat-lihat /etc/pam.d/sshd, tetapi tidak terlihat seperti apa pun akan mendiskriminasi pengguna root: gist.github.com/vlad-alexandru-ionescu/e6a2ee6133c7e9e45273 .
Vlad A Ionescu

@VladAlexandruIonescu: Apakah ini masalah untuk semua pengguna? Anda menulis "untuk pengguna lain" yang mungkin hanya mengindikasikan satu. Bisakah Anda dempul menggunakan login pengguna ini atau Anda login sebagai root dan kemudian su itu?
Grzegorz

Ya, untuk semua pengguna non-root. Saya dapat ssh / dempul sebagai pengguna mana pun (root atau non-root). Tapi itu meminta kata sandi ketika non-root, meskipun saya telah menambahkan kunci publik klien saya ke otor_keys di server.
Vlad A Ionescu

1

Saya punya masalah yang sama. Setelah mengatur izin yang benar pada otor_keys saya, mengajukan home dan direktori .ssh saya masih tidak dapat SSH ke Diskstation saya.

Setelah membaca informasi di techanic.net saya menemukan bahwa saya juga harus mengatur shell login saya di /etc/passwdfile saya . Itu diatur /sbin/nologinsecara default. Setelah mengubahnya menjadi /bin/shsaya berhasil SSH ke Diskstation saya berhasil.


0

Saya baru saja mengalami masalah yang sama dengan DSM 5.1 bukan 5.0. Tak satu pun dari solusi yang tercantum memecahkan masalah. Dalam kasus saya, izin untuk /var/services/homes/<user>/.ssh/authorized_keysitu tidak benar. Menjalankan berikut ini menyelesaikan masalah

chmod 600 /var/servieces/homes/<user>/.ssh/authorized_keys
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.