autossh di latar belakang tidak berfungsi

12

Saya telah membuat terowongan melalui autossh.

Ini bekerja:

autossh -M 33201 -N -i myIdFile -R 33101:localhost:22 [email protected]

Saya ingin menjalankan autossh di latar belakang. Tampaknya mudah menggunakan -fopsi.

Namun ini tidak berhasil:

autossh -f -M 33201 -N -i myIdFile -R 33101:localhost:22 [email protected]

Autossh berjalan di latar belakang baik-baik saja, tetapi koneksi ssh tampaknya gagal setiap saat. Di / var / syslog saya melihat beberapa kejadian:

autossh[3420]: ssh exited with error status 255; restarting ssh

Apa yang saya lakukan salah? Tebakan liar itu ada hubungannya dengan otentikasi melalui file kunci. Bagaimana saya bisa men-debug ini (menambahkan -v ke opsi ssh tampaknya tidak masuk di mana saja).

Sunting: Saya mendapatkan beberapa ssh log menggunakan opsi -y

/usr/bin/ssh[3484]: debug1: Next authentication method: publickey
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_rsa
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_dsa
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_ecdsa
/usr/bin/ssh[3484]: debug1: No more authentication methods to try.
/usr/bin/ssh[3484]: fatal: Permission denied (publickey).
autossh[3469]: ssh exited with error status 255; restarting ssh

Jadi sepertinya autossh tidak menerima file identitas saya ( -i myIdFile) ketika menggunakan opsi -f. Mengapa demikian?

(autossh 1.4c pada Raspian)

henning77
sumber
Mengapa menggunakan autossh? Anda dapat menggunakan systemd untuk "restart on failure stuff". Saya membuat intisari dengan solusi saya: gist.github.com/guettli/…
guettli

Jawaban:

29

Sepertinya ketika autossh turun ke latar belakang (opsi -f) itu sedang mengubah direktori kerja, artinya jalur relatif tidak berfungsi lagi. Atau lebih spesifik: Dengan memasukkan jalur absolut dari file id Anda, Anda mungkin akan berhasil.

Saya membuat ulang skenario dengan membuat kunci tanpa kata sandi di lokasi non-default:

~/$ mkdir test
~/$ cd test
~/test$ ssh-keygen -f test_id_rsa

Saya cukup menekan enter dua kali untuk menghasilkan kunci yang tidak dilindungi oleh kata sandi.

Saya menyalin kunci baru ke server saya (yang memungkinkan otentikasi kata sandi saat ini):

~/test$ ssh-copy-id -i test_id_rsa user@server

Pertama saya mengkonfirmasi kunci itu bekerja dengan ssh biasa, kemudian menggunakan autossh seperti Anda:

~/test$ ssh -i test_id_rsa user@server
~/test$ autossh -M 13000 -N -i test_id_rsa user@server
^C

Keduanya bekerja dengan baik, jadi saya menciptakan kembali masalah yang Anda miliki:

~/test$ autossh -f -M 13000 -N -i test_id_rsa user@server

Ini tidak berhasil dan berikut ini ditulis untuk /var/log/syslog:

autossh [2406]: ssh keluar sebelum waktunya dengan status 255; keluar otomatis

Dengan mengubah jalur keyfile menjadi absolut, itu berhasil:

~/test$ autossh -f -M 13000 -N -i /home/user/test/test_id_rsa user@server

Tidak ada kesalahan dalam /var/log/syslog.

jmidgren
sumber
luar biasa, ini berhasil.
henning77
Kamu menyelamatkan hariku!
arno_v
2
Opsi -N penting, jika tidak Anda akan mendapatkan "ssh keluar dengan status 0; autossh keluar". Terima kasih!
user30747
Dikonfirmasi, saya juga baru saja menambahkan path ke file "id_rsa" seperti ini: autossh -M 19001 -fN -y -i /home/pi/.ssh/id_rsa (terima kasih @jmidgren)
Kaya
4

Tidak yakin apa yang terjadi dengan -f tetapi Anda juga bisa menghapusnya:

nohup autossh -M 33201 -N -f -i myIdFile -R 33101:localhost:22 [email protected] &
Brian P
sumber
nohup bekerja untuk saya, bahkan tanpa menentukan file kunci.
valadil
nohupjuga bekerja untuk berjalan di autosshbawah runitdi Linux Linux
Stuart Cardall
0

Tambahkan parameter berikut ke SSH untuk memotong "Apakah Anda yakin ingin terus menghubungkan (ya / tidak)?"

-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no

Perintah terakhir akan dalam format berikut:

autossh -f -M $BASE_PORT -N -R $LOCAL_PORT:$LOCALHOST:$REMOTE_PORT $USER@$SERVER -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no
vahid-dan
sumber
ini bekerja untuk saya.
bluebird_lboro
Jangan aktifkan StrictHostKeyChecking=nokecuali Anda terhubung dengan mainan singkat yang dikenal baik - dan Anda memilih untuk malas.
Dolph