Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

概要

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

複数サーバを経由しなければならない時、
以下のように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 ファイルをメンテナンスする必要がある。

S-T
10年続けたフリーランスのシステムエンジニアを経て、オンライン英会話会社のインフラにジョイン。金髪のおねーさんが道で迷った時のために英語勉強してます。
https://tsukada.sumito.jp/
rarejob
明治神宮にあるオンライン英会話サービスを提供するベンチャー
https://www.rarejob.com/
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