Dalam kasus saya, saya ingin melakukan checkout SVN:
svn co svn+ssh://10.106.191.164/home/svn/shproject
Namun, saya ingin memiliki kata sandi di satu baris itu, sehingga tidak muncul.
linux
ssh
svn
authentication
Alex
sumber
sumber
Jawaban:
sumber
sshpass
(yang berfungsi untuk saya).Karena Anda menggunakan SSH, cara yang disukai adalah menggunakan kunci publik untuk otorisasi, yang menghemat kebutuhan kata sandi sepenuhnya.
Panduan untuk membuat dan memasang kunci dapat ditemukan di sini .
sumber
Jauh lebih baik adalah menghasilkan keypair. Sebagai pengguna lokal Anda:
$ ssh-keygen -t rsa
(terima semua default)
Kemudian ambil konten .ssh / id_rsa.pub dan tambahkan di server jarak jauh ke .ssh / official_keys. Pastikan semuanya disisipkan ke baris yang sama. Juga pastikan izin direktori .ssh adalah 600.
Maka Anda harus dapat ssh tanpa diminta kata sandi.
sumber
Alih-alih menggunakan kata sandi, Anda mungkin ingin melihat pada pasangan kunci publik / publik dan ssh menggunakannya. kebanyakan distribusi linux datang dengan perintah yang mudah digunakan untuk membuat pasangan semacam itu. namun ini membutuhkan akses ke sisi server (sekali) untuk menyetor file kunci publik di file ~ / .ssh / otor_keys pengguna Anda.
sumber
Yah, aku tidak ingin memasukkan password - saya tidak suka bergantung pada kata sandi yang disimpan di suatu tempat; namun, saya ingin memasukkannya sekali per set perintah svn + ssh; dan seringkali, Anda hanya ingin melakukannya
svn checkout
- dan harus memasukkan banyak kata sandi. Dalam hal ini saya hanya ingin mengetikkan kata sandi.Jadi, hanya jawaban oleh @Boinst dan @Marius yang relevan untuk kasus penggunaan saya; Sayangnya, mereka tidak membantu, karena saya tidak bisa membuat mereka bekerja. Saya bertanya-tanya apakah penulis posting sendiri mencoba perintah sebelum mempostingnya, karena sekarang saya tidak bisa membayangkan bagaimana mereka bisa bekerja - inilah tes yang saya lakukan secara lokal pada Ubuntu 10,04 PC saya (dan saya putus dengan Ctrl-C, setiap kali saya melihat kata sandi muncul):
Sejauh
--username/--password
padasvn
baris perintah yang bersangkutan - yang tidak peduli dengansvn+ssh
, karena itussh
meminta, tidaksvn
:svn - Subversion mengabaikan opsi "--password" dan "--username" - Stack Overflow
Selain itu, seperti yang ditunjukkan oleh log,
ssh
itu sendiri tidak menerima "username:password@...
" di URL - dan begitu juga tidaksvn
. Mengapa hanya dapat menggunakan nama pengguna di URLsvn
, mungkin dijelaskan dalam~/.subversion/config
:Perhatikan tidak ada yang dikatakan tentang
<user>:<pass>@<hostname>
.Sekarang, berkat halaman Subversi lebih dari SVN + SSH di Debian , saya akhirnya menyadari ada
SVN_SSH
variabel lingkungan yang digunakan~/.subversion/config
untuk terowongan (saya kira) ssh; dan yang akhirnya membuka kemungkinan untuk menggunakan programsshpass
untuk menangani kata sandi sedemikian rupa satu arah:Ya, setidaknya saya senang akhirnya menemukan solusi yang berfungsi untuk saya - semoga ini membantu orang lain juga,
Ceria!
sumber
sumber
Anda juga dapat menggunakan sakelar nama pengguna dan kata sandi yang diberikan .
Lihat otentikasi baris perintah .
sumber
Saya pikir menggunakan sshpass (di Linux) adalah cara terbaik untuk mendapatkan ini.
Instal sshpass
Setel variabel lingkungan sementara
Edit file konfigurasi svn
Akhirnya komentar tambahkan
sshpass -e
ke ssh line, sebelumssh
perintahsumber