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 [email protected]
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: [email protected],[email protected],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: [email protected],[email protected],ssh-rsa,[email protected],[email protected],[email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: kex_parse_kexinit: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,[email protected],zlib
debug2: kex_parse_kexinit: none,[email protected],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,[email protected]
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,[email protected]
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,[email protected]
debug2: kex_parse_kexinit: none,[email protected]
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
[email protected]'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.
Vlad A Ionescu
sumber
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!

pengguna334026
sumber
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
data palsu
sumber
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

Stephan
sumber
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.

pengguna334008
sumber
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!

Gonzalo Cao
sumber
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?

Grzegorz
sumber
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.

Rob Szumlakowski
sumber
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
Steven C. Howell
sumber