ssh

リモート設定

  • ~/.ssh/configを以下のように設定する。

# 書き方
# Host <任意の名前>
#   HostName <接続先サーバーホスト名、あるいはIPアドレス>
#   User <ユーザ名>
#   Port <ポート番号>
#   IdentityFile <秘密鍵ファイル(必要ならば)>

# 具体例
Host sv100
  HostName 192.168.100.100
  Port 22
  User snakamura
  IdentityFile ~/.ssh/ssh_keys/id_rsa_snakamura
  • これで以下で192.168.100.100に接続できるようになる。

# $ ssh <任意の名前>
$ ssh sv100

ポート転送設定

  • 踏み台サーバーを経由した接続に、localhostのポートの転送設定をする。

  • ~/.ssh/configを以下のように設定する。

  • まず、転送設定を以下のオプションで実行し、バックグラウンド稼働させる。

    • f がバックグラウンド

    • N がリモートコマンドなし

    • さらに C を付与すると、圧縮転送となる。

  • これで以下で192.168.200.101に接続できるようになる。

  • 以上の例は、ssh接続の時のものだが、転送先ポート番号に22以外のものを割り当てても良い。

    • 以下が実例

      • Windows Remote Desktop(RDP) ... 3389

      • Jupyter ... 8888

  • 転送を切りたい場合は、psでプロセスを探して、

  • sshというやつを落とせばよい。

  • WindowsでPC起動と同時にやっておきたい場合は、以下のようなvbsスクリプトをタスクスケジューラに設定する。

    • objWShell.runは、複数書いてもOK

RemoteForward

  • local以外でも転送できるようだ。コンテナ間ではうまく転送できなかった。

    • https://qiita.com/shuma/items/6b9d0127840f08398126

    • https://linuxize.com/post/how-to-setup-ssh-tunneling/#remote-port-forwarding

共通鍵認証の設定

  • キーペアを作成する。

  • ログイン予定のユーザの~/.ssh/authorized_keysに、共通鍵.pubの内容を追加書き込みする。

  • 同時に権限等を修正する。

  • /etc/ssh/sshd_configの以下を有効化する

  • 同時にパスワード認証を無効化したりrootログインを無効化するユースケースが多い。

  • 参考

    • https://qiita.com/gotohiro55/items/36a22516de2b381b3c6e

参考

  • SSHによるポートフォワーディング

    • https://blue-red.ddo.jp/~ao/wiki/wiki.cgi?page=SSH%A4%CB%A4%E8%A4%EB%A5%DD%A1%BC%A5%C8%A5%D5%A5%A9%A5%EF%A1%BC%A5%C7%A5%A3%A5%F3%A5%B0

  • SSHポートフォワーディングを知った話

    • https://qiita.com/Ayaka14/items/449e2236af4b8c2beb81

  • 【SSH】踏み台サーバーを経由した多段SSH接続のやり方(.ssh/configの利用)

    • https://serip39.hatenablog.com/entry/2020/12/18/235800

Last updated