現在、私はローカルホストとリモートホストでフィッシュをメインシェルとして使用しています。
SSHとSFTPを介してリモートホストに接続します。デフォルトでは、すべての接続でリモートtmuxを自動的に開くか再利用したいので、次の項目を私のエントリに追加しました~/.ssh/config
。
Host example.com
RemoteCommand tmux a; or tmux
RequestTTY yes
問題は、sftp
ローカルCLIを介して接続したり、直接コマンドを実行できないことです。
➤ ssh example.com ping localhost
Cannot execute command-line and remote command.
➤ sftp example.com
Cannot execute command-line and remote command.
Connection closed
だから私の質問は次のとおりです。新しいインタラクティブSSHセッションを開くときに実行されるデフォルトのコマンドをどのように定義しますが、それをオーバーライドできるようにしますか?
ベストアンサー1
オプション1)
一致を選択できます(参照:男 ssh_config)
Match Host example.com exec "test $_ = /usr/bin/ssh"
RemoteCommand tmux a; or tmux
RequestTTY yes
これはsshとsftpの違いだけを伝えます。
オプション2
diffe コマンドのいくつかのプレースホルダ構成を作成します。たとえば、次のようになります。
Host tmux.example.com
HostName example.com
HostKeyAlias example.com
RemoteCommand tmux a; or tmux
RequestTTY yes
その後もsftp / pingにexample.comを使用できます。