🐕
GitBashを用いて踏み台サーバを2台経由してSSH接続やSCPでのファイル転送を実施する方法
はじめに
業務でGitBashを用いて踏み台サーバを2台経由してSSH接続やSCPを用いたファイル転送を実施する機会があったので、対応方法を記事として残したいと思います。
イメージ図
環境
- OSは、CentOS7.9を使用
OSバージョン
$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
$
- ターミナルは、GitBashを使用する。
設定手順
- GitBashのユーザーディレクトリ上にsshディレクトリを作成し、
config
ファイルを作成する。
コマンド
mkdir ~/.ssh
touch ~/.ssh/config
- configファイルに以下の設定を記載し、保存する。
configファイル
## bastion1
Host bastion1
Hostname 192.168.2.98
User bastion
Port 22
## bastion2
Host bastion2
Hostname 172.21.48.99
User bastion
Port 22
ProxyCommand ssh -W %h:%p bastion1
## Target
Host Target
Hostname 172.21.48.100
User target
Port 22
ProxyCommand ssh -W %h:%p bastion2
接続確認
SSH接続
以下のコマンドを実行し、SSH接続を行う。
コマンド
ssh Target
それぞれのサーバのパスワードが聞かれるので、入力するとログイン可能。
実行例
$ ssh Target
bastion@192.168.2.98's password:
bastion@172.21.48.99's password:
target@172.21.48.100's password:
Last login: Tue Jun 13 21:19:30 2023 from 172.21.49.52
[target@Target ~]$
SCPでのファイル転送
以下のようにSCPコマンドを実行すると、一発でTargetサーバにファイル転送が可能です。
コマンド
scp {送りたいファイルパス} {Targetサーバ名}:{配置したいディレクトリパス}
イメージとしては、以下のような形になります。
実行例
$ scp test jenkins:~/.
bastion@192.168.2.98's password:
bastion@172.21.48.99's password:
jenkins@172.21.48.100's password:
test 100% 10 0.1KB/s 00:00
さいごに
WinSCP等を用いてファイル転送を実施する方法も検討しましたが、こちらの方法が一番簡単でした。
参考
Discussion