Päivästä toiseen yrityspalvelimemme alkoi pyytää minulta SSH-salasanaani.
Ensimmäinen asia, jonka tarkistin, oli nähdä, onko avaimesi palvelimen .ssh/authorized_keys
sisällä. Avain oli sisällä, mikään ei muuttunut. Myös /etc/ssh/sshd_config
-kohdassa mikään ei ole muuttunut.
Sitten yritin tehdä tämän menettelyn vasta asennettu Ubuntu16-palvelin. Suoritettuaan nämä 5 vaihetta uusi palvelin kysyi minulta uudelleen SSH-salasanaa.
Komennolla ssh-copy-id
on vihdoin saavutettu avaimeton SSH-kirjautuminen, mutta olen huomannut, että .ssh/authorized_keys
on kolme riviä: yksi alkaa ssh-dss
ja 2x alkaa ssh-rsa
Muistan nyt, että yllä olevan linkin 5 vaiheen menettely on toiminut aiemmin vain yhdellä avaimella.
Onko jotain muuttunut viime aikoina? Miksi ylhäältä tuleva toimenpide ei enää toimi?
Muokkaa: Koska ssh-copy-id
kopioi yhteensä 3 avainta .ssh/authorized_keys
näihin avaimiin löytyy seuraavista tiedostoista:
~/.ssh/id_dsa
~/.ssh/sshkey.pub
~/.ssh/id_rsa.pub
joten poistin rivi ruudulta etätietokannasta ”s .ssh/authorized_keys
poistettu ~/.ssh/id_dsa
rivi – automaattinen sisäänkirjautuminen onnistunut
poistettu ~/.ssh/id_rsa.pub
rivi – automaattinen sisäänkirjautuminen onnistunut
poistettu ~/.ssh/sshkey.pub
rivi – automaattinen sisäänkirjautuminen ei onnistunut – kysyi salasanaa
Vain sisältö, joka on peräisin osoitteesta ~/.ssh/sshkey.pub
, on välttämätöntä. Miksi SSH vertaa sshkey.pub
eikä id_rsa.pub
kuten online-opetusohjelman esimerkissä?
Kommentit
Vastaa
Näyttää siltä, että ssh-copy-id
on vain mukavuustoiminto. Se tarkistaa, onko avaimet jo viety koneelle, se luo tarvittaessa hakemiston .ssh
, mutta periaatteessa se vain lisää julkiset avaimet .ssh/authorized_keys
. ssh-copy-id
on komentotulkkikomento (openssh: ssä), joten voit lukea sen koodin (vi `which ssh-copy-id`
) loppuun:
[ "$DRY_RUN" ] || printf "%s\n" "$NEW_IDS" | \ ssh "$@" "exec sh -c "cd ; umask 077 ; mkdir -p .ssh && { [ -z ""`tail -1c .ssh/authorized_keys 2>/dev/null`"" ] || echo >> .ssh/authorized_keys ; } && cat >> .ssh/authorized_keys || exit 1 ; if type restorecon >/dev/null 2>&1 ; then restorecon -F .ssh .ssh/authorized_keys ; fi"" \ || exit 1
Todennuksen aikana vain authorized_keys
tarkistetaan. Openssh -dokumentaatiosta :
Tiedosto ~ / .ssh / valtuutetut_näppäimet listaa yleisön avaimet, jotka ovat sallittuja kirjautumista varten. Kun käyttäjä kirjautuu sisään, ssh-ohjelma kertoo palvelimelle, mitä avainparia se haluaa käyttää todentamiseen. Asiakas todistaa pääsevänsä yksityiseen avaimeen ja palvelin tarkistaa, että vastaavalla julkisella avaimella on oikeus hyväksyä tili.
Toivon, että tämä vastaa kysymyksesi otsikko ”ssh-copy-id versus manual copy id_rsa.pub”. Tätä tiedostoa ~/.ssh/sshkey.pub
minulla ei ole, joten toivon, että ratkaisit ongelmat itse asetuksessasi. Joka tapauksessa kyllä, voit kopioida julkisen avaimen manuaalisesti tiedostoon authorized_keys
ei käytä ssh-copy-id
.
ssh -v your-remote-server
-lähtö.