Vraag Meerdere openbare sleutels voor één gebruiker


Deze vraag is vergelijkbaar met SSH publieke sleutel authenticatie - kan één openbare sleutel voor meerdere gebruikers worden gebruikt? maar het is andersom.

Ik experimenteer met het gebruik van ssh zodat elke ssh-server zou werken voor je antwoorden.

Kan ik meerdere openbare sleutels koppelen aan dezelfde gebruiker? Wat zijn de voordelen hiervan? Kunnen ook verschillende homedirectory's worden ingesteld voor verschillende gebruikte sleutels (die allemaal naar dezelfde gebruiker linken)?

Laat het me weten als ik het onduidelijk ben.

Bedankt.


47
2018-01-12 21:19


oorsprong




antwoorden:


U kunt zoveel sleutels hebben als u wenst. Het is een goede gewoonte om sowieso aparte privé- / openbare sleutelsets te gebruiken voor verschillende sferen, zoals een set voor persoonlijk gebruik, een voor je werk, enz.

Maak eerst twee aparte keypairs, één voor thuis en één voor werk:

ssh-keygen -t rsa -f ~/.ssh/id_rsa.home
ssh-keygen -t rsa -f ~/.ssh/id_rsa.work

Voeg vervolgens een item toe aan uw ~/.ssh/config bestand om de sleutel te kiezen die moet worden gebruikt op basis van de server waarmee u verbinding maakt:

Host home
Hostname home.example.com
IdentityFile ~/.ssh/id_rsa.home
User <your home acct>

Host work
Hostname work.example.com
IdentityFile ~/.ssh/id_rsa.work
User <your work acct>

Voeg vervolgens de inhoud van uw toe id_rsa.work.pub in ~/.ssh/authorized_keys op de werkmachine en doe hetzelfde voor de huissleutel op uw thuiscomputer.

Wanneer u vervolgens verbinding maakt met de basisserver, gebruikt u een van de toetsen en de werkserver die u een andere gebruikt.

Merk op dat u waarschijnlijk beide sleutels aan uw wilt toevoegen ssh-agent U hoeft dus niet altijd uw wachtwoordzin te typen.


72
2018-01-12 21:37



Dit zou werken, zelfs als id_rsa.work.pub en id_rsa.home.pub op dezelfde server staan, toch? De reden is dat ik mogelijk verbinding maak met een server vanaf verschillende computers, dus ik vraag me af of het zinvol is om verschillende keypairs voor elke computer te hebben, zelfs als ze verbinding maken met de server als dezelfde gebruiker. Bedankt. - Russell
Absoluut! Aan de serverzijde controleert ssh alle openbare sleutels in het bestand authorized_keys totdat een overeenkomst wordt gevonden. U kunt dus alle sleutels in hetzelfde authorized_keys-bestand op de server plaatsen, geen probleem. - Phil Hollenback
@PhilHollenback "ssh zal alle openbare sleutels in het bestand authorized_keys controleren totdat het een overeenkomst vindt" - u bedoelt dat het uitdagingen blijft sturen naar de client voor elke openbare sleutel totdat de client bewijst dat het een sleutel kan ontsleutelen? Heb je daar referenties voor? (oprechte interesse) - aaa90210


Het heeft veel zin om de sleutels van meerdere gebruikers naar één gebruiker te laten gaan. Veel voorkomende redenen zijn:

  • backup
  • git (bijv. Push URL: git+ssh://git@git-server/~/repos/MyProject)
  • rsync
  • algemene toegang tot een app

Voor zover u verschillende huiszoekers heeft, kunt u ze per sleutel wijzigen door ze vooraf in te dienen environment="HOME=/home/user1" voor de sleutel van user1 in het bestand authorized_keys. Zien man authorized_keys.

Probeer het, YMMV.


4
2018-01-12 21:29