他所様のサーバとSFTP接続


1.はじめに

外部NWのサーバに対してSFTP叩いてるだけの記事です。

2.先に結論

良い感じのコマンドでサーバにSFTP接続が可能。
オプションで秘密鍵とポートを指定しています。ポートはいらないかも。

$ sftp -i ./id_rsa -oPort=22 ユーザ名@外部NWサーバのIP

3.おまけの読み物

3-1.接続要件

今回は以下のお題でSFTPすることが目的でした。

・接続先は外部NW(プロジェクト的に前例なし)
・キーペアはこちらが作ってお渡し
・自分が外部とヒアリングして得た情報じゃないのでなんか全体的にふんわりしてる

言い訳がましいですが我々エンジニア的にはあまりやりたくないシチュエーションですね。
なんか人柱になってる気がしましたが頑張って突き進みます。

3-2.外部NWとの経路

AWSを普通に利用していれば、アウトバウンドのルールはだいたい制限かかってないと思います。
今回も`0.0.0.0/0`だったので特に何もしてません。
送信用のユーザも特に新しく作ってない。普段利用のユーザです。否root。

送信側サーバのグローバルは調べて外部NW側に教える。

$ curl globalip.me
XXX.XXX.XXX.XXX/32

もし制限があるなら相手のグローバルIPを聞いて22とかで追加してあげる感じですかね。

3-2.キーペアの作成

こちらの記事が大変参考になりました。
この場を借りてお礼申し上げます!!

かっこよいリンクがURL貼るだけで表示されるようになったのですね。
Qiitaやるじゃないか!

今回は2048bitで作成。
SFTP接続の成功が最優先だったので、秘密鍵のパスワードは設定していません。
セキュアはちょっと横に置きました

$ ssh-keygen -t rsa -b 2048 -f ファイル名

3-3.ふんわりした情報と戦う

経路は完成したと仮定したなら後は気合いで検証です。
結果的には冒頭に記したコマンドで通りました。

$ sftp -i ./id_rsa -oPort=22 ユーザ名@サーバのIP

ユーザ名とサーバのIPは相手からのご教示。
今回はワンライナーですが、恐らく.ssh/configを書いてあげても通ると思います。

4.おわりに

・ユーザは相手側のサーバで作る
・キーペアがあればユーザとかのパスワードは不要

この知識があればもう少しサッと対応できたかと。
書くとくっそシンプルですが複雑な条件があるとまあ迷いますね。
SSHとかの20 - 22接続系はいつも利用する側ゆえゼロから作ったことがなく、この辺の理解も浅かった。

まあ知らないことがあっても突き進むエネルギーが一番重要!

記事は以上になります。
この内容がどなたかのお役に立てますと幸いです