Saya mencoba SSH dari NAS ke server web menggunakan kunci publik. Pengguna NAS adalah 'root' dan pengguna server web 'cadangan'
Saya memiliki semua izin yang ditetapkan dengan benar dan ketika saya men-debug koneksi SSH saya dapatkan: (sedikit terakhir dari debug)
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /root/.ssh/id_dsa.pub
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/root/.ssh/id_dsa.pub':
Saya menggunakan perintah:
ssh -v -i /root/.ssh/id_dsa.pub [email protected]
Fakta bahwa ia meminta kata sandi adalah pertanda baik tentu saja, tetapi saya tidak ingin itu meminta ini atau kata sandi (yang muncul setelahnya jika saya menekan 'kembali' pada frasa sandi)
sumber
Ini terjadi pada saya ketika kunci pribadi saya tidak dalam format OpenSSH.
Saya awalnya membuat kunci saya di windows menggunakan PuttyGen dan semakin terpental dengan hal yang sama ini.
Saya dapat memperbaikinya dengan memuat kunci di PuttyGen dan mengklik "Konversi" untuk mendapatkannya ke format OpenSSH.
sumber
Ada beberapa hal.
Terutama, jika KEY meminta kata sandi, kunci dibuat dengan itu. Kedua, jika sistem meminta kata sandi setelahnya, maka kunci tersebut tidak diautentikasi. Artinya, Anda perlu membuat ulang kunci SSH Anda (atau mengubahnya seperti yang disarankan oleh @rbtux) dan memperbaiki file yang diotorisasi.
Item dalam kurung keriting adalah opsi, jenis dan ukuran bit (Untuk menyatakan yang jelas: dsa> rsa, 4096> 1024 - dalam hal "keamanan").
Maka Anda perlu menambahkan kunci publik (.pub) ke file
authorized_keys
danauthorized_keys2
(itu adalah kesalahpahaman umum untuk mengatakan .pub adalah untuk penggunaan lokal, namun ini dimaksudkan untuk dibandingkan dengan) Jadi di.ssh
folder server .Kemudian di akhir Anda, Anda harus memastikan izin kunci
chmod 600 id_example
dan untuk mengurangi mengetik semua itu, Anda dapat mengatur file konfigurasi:~/.ssh/config
pada kotak lokal Anda (itu adalah kerangka, Anda dapat menyesuaikan ini satu ton):sumber
$ ssh user@comp -i ~/.ssh/id_rsa.pub
dan katanya salah izin dan pribadi kunci akan diabaikan .. jadi saya mengubah izin menjadi 600 seperti id_rsa, dan meminta frasa sandi. Jadi, memang, kemudian akan meminta kata sandi jika Anda menentukan kunci publik, meskipun kunci publik dan kunci pribadi tidak dihasilkan dengan kata sandiBagi saya karena kunci itu sendiri dienkripsi, saya mengikuti langkah-langkah berikut:
$ ssh-agent bash
$ ssh-add
$ ssh-add /location/of/key
Untuk memeriksa kapan saja, daftar kunci yang saat ini dimuat:
Rincian lebih lanjut dapat diperoleh dari tautan ini
sumber
coba https://wiki.gentoo.org/wiki/Keychain
Ini semacam bungkus
ssh-agent
danssh-add
Pro: Tidak perlu memasukkan kata sandi berulang kali selama Anda tidak me-reboot. Dapat digunakan di
crontab
.Mungkin bisa membantu.
sumber
Mungkin karena Anda menggunakan pubkey DSA yang dinonaktifkan secara default di OpenSSH v7.
Jika Anda tidak dapat mengubah pasangan kunci, kemungkinan solusinya adalah memberi tahu daemon SSH Anda di webserver.com untuk menerima tipe-tipe kunci tersebut, dengan memperbarui
/etc/ssh/sshd_config
atau setara dengan menambahkan baris berikutDan kemudian memulai kembali layanan
sumber
Pada Mac OSX Anda dapat menambahkan kunci pribadi ke gantungan kunci menggunakan perintah:
Jika kunci pribadi Anda disimpan di ~ / .ssh dan diberi nama id_rsa:
Anda kemudian akan diminta kata sandi, yang akan disimpan di gantungan kunci Anda.
sumber