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ö.