web-dev-qa-db-ja.com

.ssh / configで疑似tty割り当てとコマンド実行を指定する方法

.ssh/configで次のようなコマンドを指定する方法はありますか?

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

ssh remote-Host?を使用してリモートscreenセッションに簡単にアクセスできます

今私はカスタムスクリプトを使用してこの問題を解決しました:

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

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

~/binは最初に$PATHのままですが、柔軟性がなく醜いです。

また、カスタムスクリプトにホストのオートコンプリートを実装する方法を見つけたいと思います。

13
A B

-tオプションの場合と同様にttyを割り当てるには、RequestTTY forceをssh構成ファイルのエントリとして(通常は~/.ssh/configに)配置します。接続後も常にサーバーでコマンドを実行するには、エントリにRemoteCommand COMMANDを入力します。ここで、COMMANDは接続時に実行するコマンドです。その他のオプションについては、man ssh_configを確認してください。

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

力ルークを使用!

RequestTTY forceあなたの~/.ssh/config目的のホスト。

7

これが最も柔軟な方法だと私は主張します。スクリプトを使用すると、すべて入力に基づいて、パラメーターの設定、条件の追加、必要に応じたコマンドの変更を行うことができます。

authorized_keysでコマンドを「強制」する方法があります。しかし、コマンドラインから以外にtty割り当てを強制する方法や、ローカル側の構成ファイルからリモートサーバーにコマンドを強制する方法はわかりません。

私自身、設定ファイルをスキャンし、さまざまなドメインでDNSをチェックし、ターミナルエミュレータのタイトル文字列を設定するスクリプトがあります。ローカルシステムの画面から呼び出します(Ctrl-ag)。

1
Arcege

注:RemoteCommandOpenSSH 7.6 で動作します。以前のバージョン(つまり、現在のdebian 9.9)では、sshクライアントは(少なくともgit pull)。

0
Mathissimo