pseudo-tty ayırma ve komut yürütme belirtmek için .ssh / config yolu


13

.ssh/configŞunun gibi bir komutu belirtmenin herhangi bir yolu var mı :

ssh -t remote-host "screen -dR screen_name"

böylece uzak screenoturuma kolayca erişebilir miyim ssh remote-host?

Şu anda özel bir komut dosyası kullanarak bu sorunu çözdüm:

$ cat ~/bin/sssh 
#!/bin/sh

/usr/bin/ssh -t $1 "screen -dR ab"

~/binönce kalır $PATH, ancak esnek ve çirkin.

Ayrıca benim özel komut dosyası için ana bilgisayar otomatik tamamlama uygulamak için bir yol bulmak istiyorum.


Ben yerini alacak $1olan $@. Ardından, yalnızca ana bilgisayar adını değil, daha fazla seçenek ekleyebilirsiniz. Tamamlamak için, çalıştırmayı deneyin . /usr/share/bash-completion/completions/ssh, ardındancomplete -F _ssh sssh
Alex Stragies

Yanıtlar:


17

-tSeçeneği gibi tty'yi ayırmak için RequestTTY force, ssh config dosyasına (genellikle içinde ~/.ssh/config) bir girdi olarak koyun . Bağlandıktan sonra sunucuda her zaman bir komut yürütmek için RemoteCommand COMMAND, girişi girin, COMMANDbağlantıda çalıştırılmasını istediğiniz komutun nerede olduğunu. Diğer seçenekler için işaretleyin man ssh_config.

Host remote-host
    Hostname my.server.com
    User imauser
    IdentityFile /path/to/identity_file
    RequestTTY force
    RemoteCommand screen -dR screen_name


1

Bunun en esnek yol olduğunu iddia ediyorum. Bir komut dosyası, tüm girişlere bağlı olarak parametreleri ayarlamanıza, koşul eklemenize, komutu gerektiği gibi değiştirmenize olanak tanır.

Komutu "zorlamak" için yollar vardır authorized_keys. Ancak komut satırı dışında tty ayırmayı zorlamanın veya yerel sunucudaki uzak sunucudaki bir komutu zorlamanın bir yolunu bilmiyorum.

Kendim, ben yapılandırma dosyasını tarayan, çeşitli etki alanları ile DNS karşı denetler ve terminal öykünücünün başlık dizesini ayarlar bir komut dosyası var. Yerel sistemimdeki ekrandan çağırıyorum ( Ctrl-a g).


0

Not: OpenSSH 7.6RemoteCommand ile çalışmaya başlar . Önceki sürümde (yani geçerli debian 9.9) ssh istemcisi düzgün çalışmayı durduracaktır (en azından ile ). git pull

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.