対話型セッションでのみRemoteCommandを使用してSSHを構成する方法(つまり、コマンドがないかsftpではありません)

対話型セッションでのみRemoteCommandを使用してSSHを構成する方法(つまり、コマンドがないかsftpではありません)

現在、私はローカルホストとリモートホストでフィッシュをメインシェルとして使用しています。

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を使用できます。

おすすめ記事