Bunu çalıştırırsam:
ssh user@server 'mysql -u user -p'
Bana MySQL şifresini sorduğunda ve yazmaya başladığımda şifre ekranda görülebilir. Bunu nasıl önleyebilirim? Oturum ssh
açıp MySQL komutunu çalıştırırsam, her şey yolunda gider .
Bunu çalıştırırsam:
ssh user@server 'mysql -u user -p'
Bana MySQL şifresini sorduğunda ve yazmaya başladığımda şifre ekranda görülebilir. Bunu nasıl önleyebilirim? Oturum ssh
açıp MySQL komutunu çalıştırırsam, her şey yolunda gider .
Yanıtlar:
Çalıştırmak için uzak bir komut sağlarsanız, SSH bir tty ayırmaz, bu nedenle uzak komut yankıyı devre dışı bırakamaz. Bu -t
seçeneği kullanarak SSH'yi bir tty sağlaması için zorlayabilirsiniz :
ssh -t user@server 'mysql -u user -p'
Eşdeğer seçenek ( -o
veya config dosyası için) RequestTTY
. İnteraktif olmayan komutlar için istenmeyen etkileri olabileceğinden config içinde kullanmamaya dikkat ederdim .
RequestTTY
içinde man 5 ssh_config
.
Uzak bilgisayarın güvenliğine [*] güveniyorsanız , şifreyi, her biri aracılığıyla iletişim kurmanıza veya yazmaya gerek kalmadan, kılavuzun Son Kullanıcı Parola Güvenliği Yönergeleri bölümünde önerildiği şekilde uygun şekilde korunan bir seçenek dosyasında saklayabilirsiniz. ssh
saati.
Özellikle .my.cnf
, ana dizininizdeki dosyanın [istemci] bölümüne bir satır ekleyebilirsiniz :
[client]
password=your_pass
Elbette, örneğin dosya erişim modunu 400 veya 600 olarak ayarlayarak bu dosyanın kendinizden başkası tarafından erişilebilir olmasını engellemelisiniz.
chmod 600 ~/.my.cnf
Sonra gibi bir şey kullanabilirsiniz
ssh user@server 'mysql -u user110971 --defaults-file=/home/user110971/mysql-opts'
user110971
hesabınızın kullanıcı adı nerede .
ssh -t
) ataması için zorlamakBu sorun, her komut gönderdiğinizde gerçekleşir ssh
ve varsayılan olarak ssh
bir takma tty atamadığı için girdiyi girmeniz gerekir .
Tty tahsisini şu seçenekle zorlayabilirsiniz: -t
(gerekirse birden fazla bile):
-t
Sözde tty tahsisini zorla. Bu, uzak bir makinede isteğe bağlı ekran tabanlı programları yürütmek için kullanılabilir; bu, örneğin menü hizmetlerini uygularken çok yararlı olabilir. Birden fazla
-t
seçenek, ssh'nin yerel tty'si olmasa bile, tty tahsisini zorlar.
Eğer okuduğunuz gibi bu Debian yazı (Jul_11_2008) hakkında sudo
, bu aşklar tekrarlanmasını Eski bir konudur:
ssh user@server "sudo ls" password: password
Ve şifre size gösterilir
Çözüm, ssh'yi -t bayrağıyla sahte bir tty ayırmaya zorlamaktır:
ssh -t user@server sudo ls
[*] Şifreyi yalnızca sizin tarafınızdan erişilebilen bir dosyada bırakıp, çalışan istemcideroot kullanmaya güveniyorsanız.
İşletim sistemini değiştiren uzaktaki bilgisayarı yeniden başlatmak veya HDD'yi kaldırmak mümkün ise, bilgisayar tamamen güvenli sayılmaz ... ancak bu durumda veritabanının kendisi güvenli olmaz.