GNU/Linux >> Belajar Linux >  >> Linux

Rsync melalui SSH tidak mendapatkan hadiah tty

Solusi 1:

Terkadang Anda berpikir terlalu keras tentang berbagai hal.

Rsync tidak diinstal pada sistem jarak jauh.

/wajah

Solusi 2:

Letakkan ini di sini agar saya dapat mengingat &membagikan trik ini:

rsync -av -e "ssh -tt" --rsync-path="stty raw -echo; sudo /usr/bin/rsync"   [email protected]${HOSTNAME}:/ ${DEST_DIR}

Metode ini tampaknya melewati persyaratan untuk tty seperti yang diterapkan pada /etc/sudoers default beberapa sistem file dengan Defaults requiretty . Informasi ini dibuat setelah meninjau pertanyaan &jawaban SO ini.

Dalam jawaban itu, mereka merekomendasikan untuk menghapus Defaults requiretty dari /etc/sudoers . Ini adalah metode yang lebih mudah. Namun, jika Anda tidak dapat mengubah host jarak jauh /etc/sudoers untuk menghapus opsi konfigurasi ini, Anda dapat mencoba memaksa rsync lokal untuk menggunakan ssh -tt . Opsi ini untuk ssh dijelaskan dalam ssh halaman manual klien seperti ini:

Paksa alokasi terminal semu. Ini dapat digunakan untuk menjalankan program berbasis layar sewenang-wenang pada mesin jarak jauh, yang bisa sangat berguna, mis. saat mengimplementasikan layanan menu. Beberapa opsi -t memaksa alokasi tty, bahkan jika ssh tidak memiliki tty lokal.

Jadi, kami memaksa ssh untuk mengalokasikan pseudo-tty untuk menghindari kesalahan:

Pseudo-terminal will not be allocated because stdin is not a terminal.
stty: standard input: Inappropriate ioctl for device
sudo: sorry, you must have a tty to run sudo

Lalu, --rsync-path diganti dengan perintah untuk melakukan hal berikut:

stty raw -echo; sudo /usr/bin/rsync

stty raw -echo adalah untuk mengatur disiplin garis dari terminal jarak jauh sebagai pass through. Ini secara efektif menyebabkannya berperilaku seperti pipa yang akan digunakan alih-alih terminal semu tanpa -tt .

Maka perintah rsync jarak jauh akan menjadi sudo /usr/bin/rsync , yang sekarang memiliki pseudo-tty dan akan meneruskan requiretty periksa sudo .


Linux
  1. Menjalankan File Skrip Melalui Ssh Melalui Sudo?

  2. Ssh – Mengapa Firefox Sangat Lambat Dibanding Ssh?

  3. Ssh – Perlu Tty Untuk Menjalankan Sudo Jika Saya Bisa Sudo Tanpa Kata Sandi?

  1. Oring Dengan Benar Dalam Perintah Atas Ssh?

  2. Cara membedakan direktori melalui ssh

  3. sudoers NOPASSWD:sudo:tidak ada tty dan tidak ada program askpass yang ditentukan

  1. Gunakan perangkat melalui SSH?

  2. Mendorong prompt PS1 saya melalui ssh

  3. proxy http melalui ssh, bukan kaus kaki