SSH terus meminta kata sandi saya jika saya menggunakan keyfile selain default

6

Saya memiliki keyfile bernama KEY, yang memiliki KEY dan KEY.pub. Saya unggah pub ke authorized_keys, dan tambahkan pribadi dengan

ssh-add /home/user/.ssh/KEY

Tetapi ketika saya mencoba terhubung dengan ssh [email protected], terus meminta saya untuk kata sandi.

Jika saya menghasilkan kunci dengan ssh-keygen dan meninggalkan nama kunci default, mengunggah pub dan memuatnya pribadi tidak meminta kata sandi.

Apa masalahnya?

Gabriel A. Zorrilla
sumber

Jawaban:

8

Dengan ssh -vvv [email protected] Anda bisa mendapatkan hasil debug dan mungkin akan memberi tahu Anda bahwa itu tidak dapat diautentikasi ~/.ssh/id_rsa (file kunci default ssh). Jawabannya adalah memberi tahu ssh kunci mana yang harus digunakan:

ssh -i /home/user/.ssh/KEY [email protected]

Anda juga dapat menambahkan keyfile per-host ke .ssh/config, maka Anda hanya perlu mengetik ssh host.com dan pengguna / kunci dipilih secara otomatis.

Contoh entri untuk .ssh / config (Untuk informasi lebih lanjut, lihat man ssh_config ):

Host mysshserver ssh.host.com
HostName ssh.host.com
User myusername
IdentityFile ~/.ssh/mykeyfile


Penjelasan keyfile dari man ssh:

 -i identity_file
             Selects a file from which the identity (private key) for RSA or
             DSA authentication is read.  The default is ~/.ssh/identity for
             protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for pro‐
             tocol version 2.  Identity files may also be specified on a per-
             host basis in the configuration file.  It is possible to have
             multiple -i options (and multiple identities specified in config‐
             uration files).

sumber
Saya mendapatkan opsi konfigurasi yang buruk ketika menambahkan baris ssh -i: /home/gabriel/.ssh/config: baris 2: opsi konfigurasi yang buruk: ssh
Gabriel A. Zorrilla
@Gabriel: "ssh -i /home/user/.ssh/KEY [email protected]" hanya berfungsi dari baris perintah. Opsi configfile berbeda dan saya telah memperbarui jawaban saya dengan contoh entri untuk file .ssh / config.
1

Untuk mengatur file kunci Anda dengan benar (How-To sini ), perhatikan hal berikut:

Jika tuan rumah Anda .ssh direktori dan file tidak memiliki izin yang tepat DAN / ATAU direktori home pengguna jarak jauh Anda tidak memiliki izin yang tepat, ssh akan terus meminta kata sandi meskipun menemukan file kunci.

Anda dapat melihat apakah file kunci Anda / file ditawarkan menggunakan ssh -vvv user@host

Contoh output:

debug1: Offering DSA public key: /Users/<user>/.ssh/id_dsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
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

Periksa direktori home pengguna jarak jauh dan jarak jauh .ssh izin direktori

Misalnya, izin harus:

$ls -ld .ssh
drwx------ 2 <owner> <group> 4096 2011-12-29 20:39 .ssh

$ls -ld ~/
drwxr-xr-x 28 <owner> <group> 4096 2011-12-29 20:15 /home/<user>/ 
eyalto
sumber
-1

Artikel Cara mengatur SSH Login berbasis keyfile menjelaskan masalah dan solusinya

ketika Anda berada di sistem A dan ketik "ssh   username @ B ", sistem B akan memeriksa ke   lihat apakah kunci sesuai dengan Anda   sistem File "id_dsa" adalah di antaranya   dikenal oleh pengguna Anda (yaitu, itu ada di authorized_keys file di pengguna Anda   subdirektori .ssh). Jika ya, itu tidak akan terjadi   meminta kata sandi sistem, ia akan bertanya   untuk frasa sandi terkait kunci tersebut,   yang berarti bahwa jika Anda sudah mengaturnya   tanpa frasa sandi, Anda hidup tanpa   harus mengetik apa pun.

Lihat artikel untuk instruksi terperinci.

harrymc
sumber