57
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

Organization

sshで踏み台経由時のショートカット

リモートホストでコマンドの実行

リモートホストAにコマンドを実行したいとき

$ ssh hoge@hostA "実行したいコマンド"

で,この場合ホストAにssh接続してさらにコマンドを実行させることができる.

これを使って,踏み台経由でsshする際,ショートカットできないか試してみる.

通常の踏み台経由でのssh接続

例えばhostAは外部ネットワークからssh接続する際に踏み台サーバであるhostBを経由する必要があるとすると

local$ ssh hoge@hostB
hostB$ ssh hoge@hostA
hostA$

と,2段階に分けてssh接続作業をしなければならない.

$ ssh hoge@hostA "実行したいコマンド"を応用

そこで

$ ssh hoge@hostB "ssh hostA"

で,ssh接続したhostBにおいてhostAへのssh接続コマンドを実行させてみる

以下のエラーが発生

Pseudo-terminal will not be allocated because stdin is not a terminal.

Pseudo-terminalとは疑似端末のことで,それが割り当てられていないとのこと.
一回ぽっきりのコマンド実行のために模擬端末を割り当てない仕様になっている.

-tオプション

というわけで,模擬端末を割り当ててやる必要がある.

local$ ssh -t hoge@hostB "ssh hostA"
hostA$ 

-tオプションをつけてやることで,コマンドを実行する際に模擬端末をつけてやることができる.

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
57
Help us understand the problem. What are the problem?