次のコマンドを指定する方法はありますか.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"
~/bin
1位を維持します$PATH
が、柔軟性がなく、見苦しいです。
また、私のカスタムスクリプトにホストオートコンプリートを実装する方法を探したいと思います。
答え1
-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
答え2
武力を使って、ルーク!
RequestTTY force
希望のホストから~/.ssh/config
。
答え3
私はこれが最も柔軟な方法だと思います。スクリプトを使用すると、パラメータを設定し、条件を追加し、入力に応じてコマンドを変更できます。
コマンドを「強制」する方法がありますauthorized_keys
。しかし、コマンドラインでttyの割り当てを強制したり、ローカル側の設定ファイルでリモートサーバーのコマンドを実行したりする以外に、他の方法がわかりません。
設定ファイルを検索し、さまざまなドメインのDNSを確認し、端末エミュレータのタイトル文字列を設定するスクリプトがあります。私のローカルシステムの画面()から呼び出しますCtrl-a g。
答え4
注:RemoteCommand
始めるオープンSSH 7.6。以前のバージョン(たとえば、現在のdebian 9.9)では、sshクライアントは正しく動作しません(少なくともgit pull
)。