63
50

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ssh/scp多段接続〜踏み台サーバを越えて〜

Last updated at Posted at 2018-01-24

概要

多段接続したいと思った時、都度自前のノートからコピペしていたのでノート無しには何もできなくなってしまった。

複数サーバを経由しなければならない時、
以下のように1台づつファイルを転送するオペレーションになりがちである。

通常転送

スクリーンショット 2018-01-24 18.20.23.png

これでは送信元サーバで転送コマンドを叩くだけでなく、
踏み台サーバでも転送コマンドを叩かなければならない。
サーバ同士の関わりが強い状態なので、cronに処理を仕込もうにも非常にやりにくい。

多段転送

スクリーンショット 2018-01-24 18.02.05.png

scpのProxyCommandを使った多段接続機能を使えば
転送処理の為だけにわざわざ踏み台サーバに入る必要はない。

scp -r -o "ProxyCommand ssh -i ~/.ssh/key ユーザー@踏み台 -W %h:%p" testdir ユーザー@送信先:/tmp/.

もしくは

scp -r -o "ProxyCommand ssh -i ~/.ssh/key ユーザー@踏み台 nc %h %p" testdir ユーザー@送信先:/tmp/.

上記2つの違いは、-Wオプションを使うか、nc (netcat)を使うかの違いである。
ncオプションの場合、踏み台サーバにもncが使えるようにしておく必要がある。
一方で-Wオプションの場合は、そこを意識しなくて良い。
%h %pはそれぞれホスト、ポートを表している。

※上記コマンドは鍵認証を用いている為、パスワード認証で行う場合は -i ~/.ssh/key を適宜削除すること。

注意事項

sshで接続すると接続元に書かれる
.ssh/known_hostsは踏み台には書かれず、送信元に書かれる。

複数の環境を持っており、その数だけ踏み台サーバがあり、
送信先のIPが同じ(192.168.1.201)の場合、
送信元の ~/.ssh/known_hosts ファイルをメンテナンスする必要がある。

63
50
0

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
63
50

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?