.ssh/config は、pseudo-tty の割り当てとコマンドの実行方法を指定します。

.ssh/config は、pseudo-tty の割り当てとコマンドの実行方法を指定します。

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

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

これにより、?を使用してリモートscreenセッションに簡単にアクセスできます。ssh remote-host

これで、カスタムスクリプトを使用してこの問題を解決しました。

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

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

~/bin1位を維持します$PATHが、柔軟性がなく、見苦しいです。

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

答え1

-tオプションのようにttyを割り当てるには、RequestTTY forcessh設定ファイル(通常)にエントリとして配置します~/.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

答え2

武力を使って、ルーク!

RequestTTY force希望のホストから~/.ssh/config

答え3

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

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

設定ファイルを検索し、さまざまなドメインのDNSを確認し、端末エミュレータのタイトル文字列を設定するスクリプトがあります。私のローカルシステムの画面()から呼び出しますCtrl-a g

答え4

注:RemoteCommand始めるオープンSSH 7.6。以前のバージョン(たとえば、現在のdebian 9.9)では、sshクライアントは正しく動作しません(少なくともgit pull)。

関連情報