VScodeのsftpプラグインで踏み台超えてsftpする【sshの鍵はどちらともローカルに置けます】
こんちゃっす。
今回は開発環境作る中でwordmoveとか使えずFTPクライアント(winscp)使ってたんですがクリックしたりファイル目視で探すのがしんどすぎたのでvscodeにSFTPプラグイン入れてそのままvscodeからファイルアップロードできるようにしました。
(そもそも何でftp以外もできるのにftpクライアントって名前で通ってるのか疑問w)
で、シンプルにftpでやってるサーバーもあったのでそこは余裕で接続できたんです
が
sftpでやってるとこはターゲットにつながる前に踏み台があって一苦労しました。
なのでやり方簡単に書いてきます。
目次
このプラグインは踏み台に鍵を置く前提
下記がデフォルトの設定ファイルなのですが現状踏み台側のサーバーに変更は加えれないので
// 踏み台サーバー
"host": "hopHost",
"username": "hopUsername",
"privateKeyPath": "/Users/localUser/.ssh/id_rsa", // <-- The key file is assumed on the local. (ローカル側のキー)
"remotePath": "/path/in/target",
"hop": {
// ターゲットサーバー
"host": "targetHost",
"username": "targetUsername",
"privateKeyPath": "/Users/hopUser/.ssh/id_rsa", // <-- The key file is assumed on the hop. (踏み台側サーバーに置いてるキー)
}
}
下記の踏み台サーバーにキー置いて繋ぐスタイルが出来ませんでした。
"privateKeyPath": "/Users/hopUser/.ssh/id_rsa",
//The key file is assumed on the hop. (踏み台側サーバーに置いてるキー)
そもそも踏み台通すときはキーはセキュリティ上踏み台サーバに置かない方が良いらしいよ?w
ポートフォワーディング
ってなわけでポートフォワーディングってやつをやっていきます。
ポートフォワーディングやってこのプラグイン使ってる人はいました。
しかし、自分が繋ぎたいサーバーがsftpだけしか許可してくれてなくてsshすると
this service only allows sftp connections
みたいなのが出てきてssh出来ねえ、、
下記でローカル側にsshで入ってローカルでランダムに作ったポートにフォワードする的なことをしました(適当)
なので、そのままsftpのプラグインでターゲット側のキー参照すればいけます。
ってことでまとめ
ssh -L 9999:<ターゲットサーバーのホスト>:<ターゲットのport> <踏み台のユーザ名>@<踏み台ホスト> -p <踏み台ポート> -i /Users/.ssh/踏み台のkey
一応メモで:keyはpemです。PuTTY(ppk)の人は変換してください。
上記で踏み台にsshした状態で、vscode側のsftp.configを
{
"name": "名前",
"host": "localhost",
"protocol": "sftp",
"port": 9999,
"username": "sftp-user",
"remotePath": "/vhosts/サーバー側ディレクトリ",
"privateKeyPath": "/Users/.ssh/本番key",
"uploadOnSave": false,
"useTempFile": false,
"ignore": [
"**/.vscode/**",
"**/.history/**",
"**/.git/**",
"**/.DS_Store"
]
}
ってことでもし同じく詰まってる人いたら上記やってみて下さい。
これでftpクライアントソフト/アプリをわざわざ開かなくてもそのままvscodeからサーバーに上げれるようになります。
ちなみにこのvscodeプラグインの使い方は下記。
それでは快適なコーディングライフを。See Yaaaaaa!!