Instal kunci publik melalui ssh-copy-id untuk pengguna lain

26

ssh-copy-iddapat digunakan untuk menginstal kunci publik di mesin jarak jauh authorized_keys. Bisakah perintah yang sama digunakan untuk menginstal kunci publik pengguna lain, jika Anda memiliki sudokemampuan?

Pembaruan: baik lokal maupun jarak jauh menggunakan Ubuntu 12.04.

Pembaruan 2: menjelaskan prosedur membuat akun pengguna baru dan menambahkan kunci publik

  1. (jarak jauh) Buat akun pengguna baru, dan atur hanya untuk akses kunci publik pengguna.
  2. (lokal) Hasilkan kunci publik untuk akun pengguna baru (ssh-keygen).
  3. Biasanya yang saya lakukan adalah membuat direktori dan file .ssh/authorized_keysdi server jauh, lalu salin dan tempel kunci publik yang dihasilkan secara lokal ke akun pengguna baru. Apa yang saya cari adalah jika saya dapat menggunakan ssh-copy-iduntuk menginstal kunci publik pengguna yang baru dibuat ini secara langsung ke direktori ssh. Hanya untuk menyimpan beberapa perintah lagi.
Realguess
sumber

Jawaban:

12

Bukan perintah yang sama tetapi jika Anda memiliki sudo pada host jarak jauh, Anda dapat menggunakan ssh untuk melakukan langkah-langkah yang diperlukan dari jarak jauh. Saya menggunakan perintah berikut untuk mendorong kunci ssh ke pengguna root raspberry saya:

cat ~/.ssh/id_rsa.pub | \
  ssh [email protected] \
  "sudo mkdir /root/.ssh; sudo tee -a /root/.ssh/authorized_keys"
  • kucing kunci publik saya
  • pipa itu ke ssh
  • ssh terhubung ke raspberry saya sebagai pengguna ssh
  • pada remote menggunakan sudo untuk membuat /root/.ssh
  • kemudian gunakan sudo dengan "tee -a" untuk menambahkan stdin (yang memegang kunci dari kucing pertama) ke /root/.ssh/authorized_keys

Masukkan saja barang-barang ini sebagai skrip, mungkin tambahkan beberapa chmod / chown di sisi yang jauh dan Anda memiliki apa yang Anda butuhkan.

Michael Wyraz
sumber
Cantik dan terima kasih atas gangguan perintahnya.
Blake Frederick
1

Ya :), Jika Anda, misalnya, dicatat sebagai ghost @ ubuntu dan Anda

ssh-copy-id root@host-ip

Dari yang Anda akan lihat, pada server host di /root/.ssh/authorized_keyskunci file berakhir dengan ghost@ubuntu.
Itu berarti bahwa pengguna hantu telah menyalin pasangan kuncinya dan tidak perlu mengetikkan kata sandi lagi.
Saya tidak yakin ini akan berfungsi dengan -u <username>flag sekarang, tetapi Anda selalu dapat masuk sebagai pengguna yang berbeda

su <user_name> 

dan kemudian ssh-copy-id ...

mirkobrankovic
sumber
1
Akankah kunci diinstal /root/.ssh/authorized_keysbukan /home/ghost/.ssh/authorized_keys? Saya baru saja memperbarui prosedur yang saya lakukan saat ini untuk menginstal kunci publik untuk pengguna baru. Hanya mencari metode yang lebih baik. Terima kasih!
Realguess
Kunci akan dipasang di rumah pengguna yang Anda sambungkan dari jarak jauh. Anda dapat menggunakan opsi -i dari ssh-copy-id untuk menentukan kunci mana yang ingin Anda salin, tetapi Anda tidak dapat menyalinnya ke direktori lain dengan ssh-copy-id normal.
user2313067
Anda dapat menentukan sebagai pengguna mana Anda akan menyalin kunci, jika Anda ingin login sebagai root daripada ssh-copy-id root @ host-ip, jika Anda ingin sebagai hantu daripada ssh-copy-id ghost @ host-ip
mirkobrankovic
1
Sistem diatur untuk mengizinkan masuk dengan kunci publik saja. Karena pengguna ghostbaru dibuat, tidak ada kunci publik yang tersedia untuk pengguna. Karena itu perlu menginstal kunci publik untuk pengguna terlebih dahulu, kemudian ssh-copy-id ghost@host-ipakan berfungsi. Tapi terima kasih, saya pikir beberapa perintah tambahan pada server jauh tidak akan menjadi masalah besar.
Realguess
ya, kebutuhan pertama untuk menghasilkan pub. kunci localy dan daripada ssh-copi-id ke server jauh
mirkobrankovic