ssh設定ファイルのリモートコマンド


12

ssh_configを設定したいので、入力した後ssh my_hostname、特定のフォルダに移動します。ちょうど私がタイプするようにcd /folder/another_one/much_much_deeper/

どうすればそれを達成できますか?

編集。「ディレクトリにsshでログインする方法」の重複としてマークされていますが私の質問ではありません

私はコマンドに合わせてコマンドを実行することで、任意のコマンドを実行できることを知っていますssh。私の質問は/ssh_configコマンドではなくファイルについてです。


質問を明確にしました。
Kazz

それについては何もありませんman ssh_config。最も近いのはLocalCommandですが、インタラクティブコマンドには使用できません。
lgeorget 2017年

1
(質問の中で)なぜ変更を加えなければならないのだと思いssh_configますか?開始ディレクトリを構成するのに適した場所はおそらくありますが、考えられる解決策にこの特定の制限がある理由を理解しておくと役立ちます。
roaima

1
「それを行うことができない」という事実ssh_configは、これを「do it in Bash」の複製にはしません。「それはできません」は完全に有効な答えです。
フランクリンゆう

1
@terdonただし、「不可能」という事実は、時間の経過とともに変化する可能性があります。はい、それは今可能です。現在、私(そして将来これを見に行く人)には新しい答えが必要です。これが再開されない場合、希望するパスは新しい質問を作成する(そしてそれに答える)ことだと思いますか?
フランクリンユー

回答:


19

OpenSSH 7.6までは、これを行う方法はありませんでした。マニュアルから:

RemoteCommand

サーバーへの接続に成功した後、リモートマシンで実行するコマンドを指定します。コマンド文字列は行末まで続き、ユーザーのシェルで実行されます。TOKENSセクションでRemoteCommand説明されているトークンを受け入れるための引数。

だから今あなたが持つことができます

RemoteCommand cd /tmp && bash

このコミットで導入されました。


5
RequestTTY forceリモートコマンドにTTYが必要な場合に追加します。例:tmux new -As my-session
Aaron Blenkush

これはキラーsshオプションですありがとう!
nhed

これにより、他のコマンドを実行できssh my_hostname lsなくなりCannot execute command-line and remote command.ます。たとえば、で失敗します。gitやrsyncなど、sshを使用する他のツールも失敗します。
レムラム

2

ssh my_hostnameと入力した後、ssh_configを設定したい

それは不可能。でそれを実現するオプションはありませんssh_config。これに最も近いのは、次のようなbashエイリアスまたはbash関数を設定することです。

myssh() {
    ssh -t $1 "cd /dir/; bash"
}

1

somoeneがこれがオリジナルであると指摘する前に、私は別のチケットで応答しました。

Macを使用している場合、私の推奨はiTerm2を使用してプロファイルを作成することです。入れてssh my_hostname、コマンドラインで、コマンドを追加cd /folder/another_one/much_much_deeper/開始フィールドで送信テキストで。セッションに接続すると、ホスト名にsshし、ケースのディレクトリにcdするか、コマンドを実行します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.