Minulla on julkisen / yksityisen avaimen asetukset, mutta en tiedä minne sen pitäisi mennä. Pitäisikö nämä molemmat tiedostot sijoittaa kansioon ~/.ssh/ käyttäjälleni?
Vastaa
Yksityinen avain pysyy kotona. Julkinen avain kulkee:
- Sijoita yksityinen avain kohtaan
~/.ssh(paikallinen isäntä). Se on yleensä~/.ssh/id_rsa. - Sijoita julkinen avain
~/.ssh/authorized_keys(etäisäntä).
Vaikka ensimmäinen vaihe tehdään yleensä automaattisesti, kun luot avain, toinen voidaan suorittaa seuraavasti:
$ ssh-copy-id ~/.ssh/id_rsa.pub user@remotehost
Jos sinulla on jäännösmäärityksiä etäisäntäkoneesta, saatat törmätä tähän ongelmiin (todennus epäonnistui tai ”liian monta todennuksen epäonnistumista” ). Voit päästä eroon tästä ongelmasta pakottamalla ssh-copy-id käyttämään salasanan todennusta seuraavilla tavoilla:
$ ssh-copy-id -o"PubkeyAuthentication no" ~/.ssh/id_rsa.pub user@remotehost
Tietysti o Koska avaimesi on asetettu oikein, salasanaa ei enää tarvita:
$ ssh user@remotehost
Voit myös lisätä SSH-kokoonpanon kohtaan ~/.ssh/config tehdäksesi siitä vieläkin yksinkertaisemman:
Host [custom name for the remote machine] Hostname [remote hostname or IP] User [remote username] IdentityFile /home/[your local user]/.ssh/id_rsa
Tämän ansiosta voit kirjoittaa vain seuraavan kirjautuaksesi etäisäntään:
$ ssh [custom name for the remote machine]
Muokkaa: Jos molemmat koneet (paikalliset ja kauko-ohjaimet) ovat samat, voit yksinkertaistaa menettelyä seuraavasti:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Tämä lisää julkisen avaimen authorized_keys -tiedostoon. Tietenkin toinen tapa kirjautua jonkun toisena paikalliselle koneellesi on käyttää:
$ su [another user]
Tämä säästää SSH-tapahtuman siellä, missä et ehkä tarvitse sitä . Salasanaton su voidaan määrittää käyttämällä sudo :
$ sudo -iu [another user]
ssh localhost?~/.ssh/authorized_keys. Tätä varten voit käyttää vaincat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys. Muokkasin vastaustani.-iensimmäiseen komentoosi, jotta koko komento näyttää tältä$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost.