etkileşimli olmayan ssh sudo… düz metin olarak parola ister


9

Etkileşimli olmayan bazı ssh komutları çalıştırıyorum. Ssh kimlik doğrulaması ssh aracısı aracılığıyla iyi halledilir, ancak sudo gerektiren bir komut çalıştırırsam, terminalimdeki parola istemi düz metindir. Örneğin:

ssh remotemachine "sudo -u www mkdir -p /path/to/new/folder"

düz metin olarak şifremi soracaktır. Herkes normal güvenli istemi kullanmak için nasıl alabilirim veya bir anahtar aracılığıyla parolayı geçebilir biliyor mu? (o zaman komutu göndermeden önce bu tarafta güvenli bir istem ayarlayabilirim)

Herhangi bir yardım çok takdir edilmektedir.

Yanıtlar:


13

Kullanım ssh -t:

adam ssh

-t   Force pseudo-tty allocation. This can be used to execute arbitrary 
     screen-based programs on a remote machine, which can be very useful, 
     e.g. when implementing menu services. Multiple -t options force tty 
     allocation, even if ssh has no local tty.

Yani komutun

ssh remotemachine -t "sudo -u www mkdir -p /path/to/new/folder"

Parola girmek istemiyorsanız, sudoerskomutu kullanarak (izin verdiğiniz takdirde) değişiklik yapabilirsiniz visudo.

Parametre ekle NOPASSWD:, örneğin

username ALL=(ALL) NOPASSWD: /bin/mkdir

/ Etc / sudoers dosyasını düzenleyemiyorsanız şunları kullanabilirsiniz sudo -S:

adam sudo

-S      The -S (stdin) option causes sudo to read the password from
        the standard input instead of the terminal device.  The
        password must be followed by a newline character.

Bununla birlikte, komut

echo "your_password" | ssh remotemachine -t \
     "sudo -S -u www mkdir -p /path/to/new/folder"

Bunun, kabuğunuzun komut geçmişine şifrenizi ekleyeceğini unutmayın (bash ile ~/.bash_historydosya olur).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.