ssh tanpa kata sandi untuk nama pengguna lain?

14

Saya ingin melakukan koneksi ssh tanpa kata sandi untuk proyek subversi. Saat ini saya menggunakan ssh + svn, dan ini sedikit mengganggu, karena saya harus mengetikkan kata sandi kapan saja saya ingin bertransaksi dengan server.

Saya telah menemukan beberapa tutorial di web tentang cara membuat kunci untuk ssh tanpa kata sandi, tetapi mereka semua tampaknya menganggap bahwa saya menggunakan nama pengguna yang sama pada sistem jarak jauh seperti halnya saya untuk sistem rumah saya. Namun, nama pengguna yang saya gunakan untuk ssh + svn berbeda dengan nama akun pengguna pada sistem yang saya jalankan. Bagaimana cara mengatur ini dengan benar? Saya belum beruntung hanya dengan mengubah nama di file kunci.

pengguna394
sumber

Jawaban:

15

Anda hanya perlu memberikan nama pengguna sistem lain dalam svnperintah:

$ svn co svn+ssh://otheruser@othersystem/path/to/repo

Untuk menjawab judul pertanyaan Anda juga:

$ ssh otheruser@othersystem

Ini menyebabkan sshdpada mesin jarak jauh untuk mencari ~otheruser/.ssh/authorized_keyskunci publik yang sesuai dengan kunci pribadi pada mesin yang Anda ketik perintah.

Warren Young
sumber
1
Jadi bagian dari instruksi adalah membuat file .ssh/id_rsa.pub, dan mengunggahnya ke server jarak jauh. Ketika saya membuatnya, itu berakhir dengan localusername @ sistem lokal. Itu harus diubah menjadi remoteusername @ remotesystem, kan? Baik secara lokal maupun jarak jauh?
user394
5
Tidak. Cukup tambahkan konten lokal Anda id_rsa.pubke authorized_keyspada sistem jarak jauh. Itu akan berhasil.
Warren Young
1
secara bergantian, banyak sistem memiliki ssh-copy-id untuk menyelesaikan masalah ini: "ssh-copy-id -i ~ / .ssh / id_rsa.pub username @ remote-machine"
Matt Simmons
Sayangnya, banyak yang tidak, dan sepertinya ini bukan bagian standar dari OpenSSH, jadi setidaknya ada beberapa implementasi berbeda dari skrip ini.
Warren Young
Jika Anda menggunakan kuda laut gnome memiliki penyebaran kunci otomatis.
Maciej Piechotka
9

Ada dua cara untuk melakukan ini:

1) masukkan user @ ke dalam url svn; ini memberitahu svn + ssh untuk masuk sebagai pengguna itu. Saya pikir ini semacam ide buruk dari sudut pandang pemeliharaan karena hal-hal seperti eksternal yang mengarah ke bagian lain dari repositori tidak akan berfungsi dengan benar.

2) membuat ~ / .ssh / config (didokumentasikan sebagai ssh_config ) yang mengatakan sesuatu seperti:

Host othersystem
  User otheruser

dengan cara ini setiap upaya ssh ke sistem orang lain akan default untuk menggunakan pengguna lain. Yang berguna bagi Anda saat melakukan ssh secara manual maupun saat Anda menggunakan svn.

pjz
sumber
5

Anda tidak harus memiliki nama pengguna yang sama di kedua mashine. Selama Anda menghasilkan kunci ( ssh-keygen) Anda harus menyalin garis dari ~/.ssh/id_rsa.pubatau ~/.ssh/id_dsa.pub(tergantung pada jenis kunci) dari server lokal dan menambahkannya ~/.ssh/authorized_keyspada remote.

% ssh-keygen
% cat ~/.ssh/id_*.pub | ssh remoteuser@remoteserver 'cat > .ssh/authorized_keys'

Jika Anda tidak ingin mengetik remoteusersetiap kali menambahkan ke ~/.ssh/config:

Host remoteserver
    User remoteuser

PS. The nama kunci mungkin dalam bentuk localuser@localhosttetapi hanya nama . Itu bisa saja baik myfavouritekey@myfavouritecomputerdan tidak ada yang peduli.

Maciej Piechotka
sumber
Perintah "cat" di atas adalah inti dari ssh-copy-idskrip umum tetapi tidak standar yang disebutkan di atas. Saya mengenalinya karena tidak semua sistem yang saya gunakan datang ssh-copy-id, jadi saya telah mengetik sesuatu seperti itu lebih dari beberapa kali. :)
Warren Young
Saya belum pernah mendengarnya ssh-copy-id. Saya biasanya menggunakan vimatau seahorse;)
Maciej Piechotka
0

Setelah saya membuat .ssh / config, dan jalankan:

cat ~/.ssh/id_*.pub | ssh remoteuser@remoteserver 'cat > .ssh/authorized_keys'

Saya mendapatkan kesalahan:

Bad owner or permissions on /usr/share/eprints3/.ssh/config

lalu saya tambahkan chmod 600 .ssh/config, dan setelah itu, itu berjalan lancar.

enter code here
prazetyo
sumber
1
Lebih baik jika Anda menambahkannya dalam file Authorized_key, jika tidak maka akan menghapus kunci pub lain juga. Jadi lebih baik jika Anda mengedit jawaban Anda dengan 'cat >> .ssh / official_keys'
Nitin Mahesh