Closed6

How to Easy SSHポートフォワーディング

i999mi999m

スクラップを書くに至った経緯

自分は家ではクソデカWindowsマシン、外ではmacbookで開発をしています。
マシンごとにDBを立ち上げたりするのはかなりめんどくさいので、macでローカルの開発で使うDBを立ち上げている状況です。

少し前までは、dockerデスクトップとdockerを使っていたので何の問題ありませんでした。
しかし、最近はorbstackとkubernetesに興味を持ってしまったために、dockerで動かしていたものをorbstackとkubernetesを用いて動かすようにしました。

その際に、mac側のマシンのポートとserviceやingressから公開しているアプリケーションが使っているポートが紐づかない(?)という問題が発生したため、SSHポートフォワーディングを用いて無理やり解決しました。

SSHポートフォワーディングをするときに個人的にかなり困った部分をまとめておけば、同じようなことがあったとき、または同じような人が現れたときに、悩まなくて済むかなと思ったため、それらしい形で記録を残そうと思いました。

i999mi999m

環境

  • Windows 10 Pro 22H2 19045.4894(クソデカWindowsマシン)
  • mac
i999mi999m

アプローチ

  1. SSHをパスワードレスで行なうようにする
  2. ポートフォワーディング
i999mi999m

SSHをパスワードレスで行なうようにする

今回は、WindowsのPowerShellからmacに対してSSHを行います。

「ssh-copy-id」コマンドが使えないので、公開鍵のコピーを手動で行います。

  1. 公開鍵の作成
    以下コマンドを実行し、よしなに操作を行い。
    公開鍵を作成します。
ssh-keygen
  1. 公開鍵をmacへコピー
cat ~/.ssh/{公開鍵のファイル名} | ssh {username}@host "cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
i999mi999m

ポートフォワーディング

今回はローカルポートフォワードをします。

ssh -N -L {port}:{remotehost}:{remoteport} {SSH接続先ユーザ名}:{SSH接続先ホスト名}

# Example
ssh -N -L 8081:localhost:30001 {SSH接続先ユーザ名}:{SSH接続先ホスト名}
このスクラップは1ヶ月前にクローズされました