Apa artinya 'Roaming tidak diizinkan oleh server' dari ssh client?

25

Saya gagal terhubung ke instance server SSH dan output verbose berisi debug1: Roaming not allowed by server. Masalah-masalah berikut yang dapat diprediksi dan dapat dihindari muncul:

  • Roaming berarti mengakses layanan dari berbagai jenis jaringan. Saya tidak tahu apa artinya dalam konteks output verbose dari sshklien 6.6.1 yang berjalan di Ubuntu 14.04.
  • Tidak jelas apakah ini adalah kesalahan atau tidak dan apakah itu apakah itu menyebabkan kegagalan login atau tidak (saya tidak ingin masuk ke kegagalan koneksi di sini, meskipun; tidak ada pesan output dari sshapakah BTW -> lebih banyak masalah dan waktu tunggu - Anda telah diperingatkan!)
  • Saya bertanya site:www.openssh.org roamingdi google dengan hasil kosong dan halaman manual tidak mengandung istilah itu. Adalah omong kosong untuk menggunakannya bahkan jika itu didokumentasikan karena ambiguitasnya!

Apa artinya pesan itu? Bagaimana saya bisa menggunakannya untuk men-debug set besar kesalahan sangat ambigu, tidak intuitif dan tidak membantu lainnya dan pesan SSH lainnya?

Karl Richter
sumber

Jawaban:

22

Ini bukan pesan kesalahan. Ini hanya pesan debug yang memberitahu Anda bahwa server tidak menerima koneksi roaming.

Roaming rupanya merupakan fitur eksperimental yang ditambahkan ke OpenSSH pada tahun 2009 atau lebih. Tujuan dari fitur ini adalah untuk membiarkan klien ssh terputus dari sesi server dan kemudian melanjutkan sesi dari lokasi lain. Lihat di sini untuk diskusi tentangnya. Googling ssh, roaming, dan "Martin Forssén" akan membuka halaman lain. Sepertinya tidak sedang dikembangkan secara aktif. Saya menduga pengembang SSH tidak pernah mendokumentasikannya karena ini eksperimental dan mungkin belum selesai.

Dari memeriksa kode sumber OpenSSH, ada opsi sisi klien tidak berdokumen UseRoamingyang dapat diatur ke ya atau tidak. Menambahkan baris "UseRoaming no" ke konfigurasi klien Anda (biasanya .ssh/configfile Anda ) harus menekan pesan debug.

Tidak jelas bagi saya mengapa HostbasedAuthenticationpengaturan sisi server akan mengontrol apakah server menerima koneksi roaming atau tidak.

Pembaruan: Dukungan roaming klien tampaknya menjadi subjek laporan paparan kerentanan komputer, CVE-2016-0777 . OpenSSH versi 5.4 hingga 7.1p1 rentan. Pengguna harus meningkatkan ke OpenSSH 7.1p2 atau lebih baru. Pengguna yang tidak dapat memutakhirkan harus menonaktifkan roaming di klien dengan menambahkan "UseRoaming no" ke konfigurasi klien ssh mereka. Lihat yang berikut ini:

Kenster
sumber
7
Nah, sekarang direkomendasikan untuk mengaturnya ke no. mail-archive.com/[email protected]/msg144351.html
nikeee
1
@nikeee: ... dan itu adalah kisah peringatan untuk tidak mengirim bertopik yang tidak berbahaya. (Perhatikan bahwa Anda perlu mengaturnya nodalam pengaturan klien , bukan pada server)
Piskvor
@Piskvor tetapi ada beberapa buku devops / webops yang melakukan hal itu .. bisakah semuanya salah? Oh
Florian Heigl
Penjelasan terbaik tentang konfigurasi ini di internet.
nils petersohn
4

Changelog dari openssh 5.3 pada CentOS6 memiliki catatan:

2009/06/27
     Tambahkan opsi klien UseRoaming. Itu belum melakukan apa pun kecuali kehendak
     mengontrol apakah klien mencoba menggunakan jelajah jika diaktifkan di Internet
     server. Dari Martin Forssen.
Andrew Daviel
sumber
3

@ ILMostro_7 chmod 600 resmi_keys bekerja dengan baik untuk saya.

Untuk kepentingan orang lain yang tiba di sini dengan googling "Roaming tidak diperbolehkan oleh server", dan menggunakan Linux (Ubuntu) klien, Anda mungkin memperbaiki yang peringatan dan kemudian melihat: -

Agent admitted failure to sign using the key

Obat untuk itu diberikan di https://help.github.com/articles/error-agent-admitted-failure-to-sign/

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    # Agent pid 59566 (displays process id)
    $ ssh-add
    # Enter passphrase for /home/you/.ssh/id_rsa: [tippy tap]
    # Identity added: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

'#' = komentar. Anda = nama pengguna Anda. [ketuk bergoncang] = humo [u] r? = tekan tombol Enter.

Saya harap itu membantu seseorang seperti halnya Tanya Jawab ini sudah membantu saya.

MartinRH
sumber
2

Pesan kesalahan ini dapat muncul ketika /etc/ssh/sshd_configtidak HostbasedAuthenticationdiatur yesdi server.

Saya tidak tahu kenapa.

Masalah lain mungkin:

Periksa izin pada direktori $ USER / .ssh yang harus dimiliki oleh pengguna dan menjadi chmod 700. File berwenang_keys juga harus chmod 700 dan dimiliki oleh pengguna

Nifle
sumber
700? Mengapa Anda perlu executesedikit di keyfile?
ILMostro_7
Dari mana kutipannya? Silakan tambahkan referensi.
Karl Richter
ILMostro_7 tidak ada di file, itu ada di direktori, dan agar pengguna bisa membuat file di direktori, flag eksekusi harus disetel
IceyEC
@IceyEC Jawabannya menyarankan 700 untuk diotorisasi .
mdrozdziel
1
Seharusnya chmod 400. Tidak tahu mengapa aku pernah ingin yang file yang akan dieksekusi; dan akses tulis juga tidak diinginkan 99,999% dari waktu. sshdmemeriksa apakah .sshfolder pengguna tidak memiliki akses untuk grup dan lainnya, dan juga untuk .ssh/authorized_keys. Oleh karena itu, izin dalam jawaban mungkin berfungsi, tetapi lebar tidak perlu.
Piskvor