リモートホストでSSHコマンドを実行できないのはなぜですか?

リモートホストでSSHコマンドを実行できないのはなぜですか?

ジャンパーボックスを介してリモートホストに接続しています。 SSHシェルを介してアクセスすると、リモートホストに簡単にアクセスできます。

ssh remoteHost

Last login: Tue Feb 16 12:56:26 2016 from xx.xxx.xx.xx

remoteHost:user:~$ ls

<shows all the stuff>

ただし、SSHコマンドラインオプションでコマンドを実行しようとすると、常に次のメッセージが表示されます。

ssh remoteHost ls

"ls" isn't allowed to be executed.

Killed by signal 1.

SSHコマンドを正常に実行できます一部ホストですが、他人ではありません。

これはサーバーで設定できる設定ですか(例:「リモートSSHコマンドを許可する」など)?

FWIW、視聴しました。パスワードなしでSSHを使用してリモートホストでコマンドの使用を有効にする方法は?しかし、その質問に対する唯一の答えはそれを表すように見えるので、私の問題は引用とは関係がないと確信しています。

修正する:

リモートホストには、次の内容を含むauthorized_keys2ファイルがあります。

ssh-rsa <encrypted stuff> jumpbox_user@jumpbox
ssh-rsa <encrypted stuff> jumpbox_user@mydesktop

私のssh / .configファイルは次のとおりです。

Host remoteHost
  HostName remoteHost
  User user
  ProxyCommand ssh -W %h:%p jumpbox_user@jumpbox_host
  ServerAliveInterval 60

ベストアンサー1

このオプションを使用してssh行を実行し、-tリモートコマンドが 'で区切られていることを確認してください。これにより、sshにリモートホストでコマンドを実行するように指示し、行内のエラーをさらに防ぎます。

ssh user@remoteHost -t 'ls'

注:-tオプションを使用すると、実際にSSH端末を開く、コマンド入力、STDOUT出力、および終了をシミュレートする疑似端末割り当てが有効になります。これは手動で行うと述べたのとまったく同じです。

SSHのマニュアルページによると:

-t 疑似端末割り当てを強制します。これは、リモートコンピュータ上で任意の画面ベースのプログラムを実行するために使用することができ、これは、例えばメニューサービスを実装する場合に有用である。複数の -t オプションは、ssh にローカル tty がない場合でも tty 割り当てを強制します。

引用:

SSH マニュアルページ

疑似TTY割り当てとは何ですか?

おすすめ記事