lftp で踏み台サーバを経由する多段接続による sftp で、ローカル PC にバックアップを取る

これまであるサイトのバックアップを VPS サーバで取っていたんだけど、容量が大きくなってきたので、手元のハードディスクに取ることにしたいなと。

だが、本番サーバは別途サーバ管理のところが運用。SSH 接続は IP アドレスでアクセス制限がかけらていて、その VPS サーバからしかアクセスできないと。

そこでその VPS サーバを経由して sftp で手元にバックアップを取ることにした。そのときのメモ

1. まず ssh で多段接続する

まず、ssh で「ローカルPC」→「VPSサーバ」→「本番サーバ」という形で接続できれば、sftp でも接続できるというわけで、まず手元の PC の WSL で、 VPS サーバを経由して ssh できるようにする

そこでまず、~/.ssh/config の設定を次のようにする。以下 VPS サーバの IP アドレスを xxx.xxx.xx.xx、SSH のポートを 21221(ユーザ名は ginchan)。本番サーバの IP アドレスを yyy.yyy.yy.yy、SSH のポートを 21 とする(ユーザ名は hogehoge)

Host vps-server
    HostName xxx.xxx.xx.xx
    User ginchan
    Port 21221
    IdentityFile /home/ginchan/.ssh/id_rsa
    
Host honban-server
    HostName yyy.yyy.yy.yy
    User hogehoge
    Port 21
    IdentityFile /home/ginchan/.ssh/id_rsa
    ProxyCommand ssh -W %h:%p vps-server

VPS サーバのほうはもちろん、これまで通り。今回あらたに本番サーバを追加。そして、このときのポイントはもちろん ProxyCommand を設定してやること。

こうすると、

$ ssh honban-server

で、手元の PC から IP アドレスで制限がかかっている本番サーバにアクセスできる。

2. lftp で sftp 接続する

ssh で接続できたので、sftp 接続も当然できると。ただ、lftp でどう接続すればいいのか、ちょっと困った。set sftp:connect-program を設定してやればいいのかなと思ったが、以下であっさり接続できた

$ lftp -u hogehoge sftp://honban-server

パスワードを聞かれるので、秘密鍵のパスフレーズを入力してやれば、見事 lftp で sftp 接続できた。これを普通に lftp でブックマークしておけばよいと。めでたしめでたし。つーかもっと早くやっておけばよかった…

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です