ジャンパーボックスを介してリモートホストに接続しています。 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 割り当てを強制します。
引用: