web-dev-qa-db-ja.com

ssh構成ファイルを使用してリモートコマンドを実行する

コマンドを入力せずに、サーバーへのsshログインで実行するコマンドをセットアップできるようにしたいと思います。基本的に私は同等のssh設定ファイルを探しています:

ssh Host command

入力する必要があるのは次のとおりです:

ssh Host

コマンドが実行されます。

33
PeterJCLaw

承認済みキーファイルにコマンドを挿入することもできます。 (~/.ssh/authorized_keys)。これにより、ファイル内の各キーに対してカスタムコマンドを実行できます。これを使用して、ファイアウォール経由でシェル接続を転送します。その結果、1つのホストにsshでき、セッションをネットワーク内のホストに自動的に接続します。 authorized_keysエントリは次のようになります。

command="ssh -Tq <hostname> \"$SSH_ORIGINAL_COMMAND\"",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAA... the rest of the key ...

より具体的には、リダイレクトは私のgitoliteインスタンス用です。これにより、gitoliteホストを外部アクセスに直接公開することなく、単純な外部アクセスが可能になります。詳細については、manページを確認してください。 ( http://linux.die.net/man/8/sshd

15
dav

OpenSSHを実行している場合、~/.ssh/rcログイン時に実行 のようになります。

10
coneslayer

あなたは.ssh/config fileでこれを冷たく解決します、コマンドを実行したいホストのために、追加します

  RequestTTY yes
  RemoteCommand <some command>

ここで、<some command>はコマンドです。これはscreenまたはtmuxでも機能します。

Bashエイリアスを設定できます。

.bashrcファイルに次のように記述します。

alias ssl='ssh some_Host run_command'

そうすれば、ホスト名を入力する必要すらありません。

または、これを複数のホストで実行する場合(および複数のエイリアスが機能しない場合)、小さなスクリプトを使用します。

kevin@box:~$ cat ssl.sh
#!/bin/sh
ssh $1 some_command
kevin@box:~$
9
Kevin M