LoginSignup
62
57

More than 5 years have passed since last update.

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

Posted at

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

リモートホスト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オプションをつけてやることで,コマンドを実行する際に模擬端末をつけてやることができる.

62
57
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
62
57