多段SSHの設定 踏み台経由

2019-06-24
linuxsshmacproxy%E3%83%97%E3%83%AD%E3%82%AD%E3%82%B7wslshell%E8%B8%8F%E3%81%BF%E5%8F%B0
    

目次

概要

踏み台を経由して多段SSHを行う際の設定についてのメモ。

設定

SSHの設定はMac/Linux/WSLであればホームディレクトリ下の~/.ssh/configに記述します。

基本的なconfigの記述

フォーマット

Host my-server # 接続時のエイリアス
    HostName my-server.example.com # ホスト名 or IP
    User step-user # ユーザ名
    Port 22 # 踏み台サーバのポート(省略すれば22)
    IdentityFile  ~/.ssh/keys/hoge.key # 秘密鍵(ローカルファイルのパスを書く)

SSHコマンド

$ ssh server1

基本的な踏み台経由のSSH設定

# 踏み台サーバの接続情報
Host step1
    HostName step-server1.server
    User step-user
    Port 22
    IdentityFile ~/.ssh/keys/hoge.key # 秘密鍵(ローカルファイルのパスを書く)

# 接続したいサーバの情報
Host private1
    HostName private-server1.server
    User user1
    Port 22
    IdentityFile ~/.ssh/keys/fuga.key # 秘密鍵(ローカルファイルのパスを書く)
    ProxyCommand ssh -W %h:%p step1 # 踏み台サーバのホスト名

以下のコマンドで接続

$ ssh private1

プロキシを経由して踏み台に接続するSSH設定

# 踏み台サーバの接続情報
Host step1
    HostName step-server1.server
    User step-user
    Port 22
    IdentityFile ~/.ssh/keys/hoge.key
    ProxyCommand nc -X connect -x proxy.hoge.com:8080 %h %p

# 接続したいサーバの情報
Host private1
    HostName private-server1.server
    User user1
    Port 22
    IdentityFile ~/.ssh/keys/fuga.key
    ProxyCommand ssh -W %h:%p step1 # 踏み台サーバのホスト名

もしくは

# 踏み台サーバの接続情報
Host step1
    HostName step-server1.server
    User step-user
    Port 22
    IdentityFile ~/.ssh/keys/hoge.key
    ProxyCommand connect -H proxy.hoge.com:8080 %h %p

# 接続したいサーバの情報
Host private1
    HostName private-server1.server
    User user1
    Port 22
    IdentityFile ~/.ssh/keys/fuga.key
    ProxyCommand ssh -W %h:%p step1 # 踏み台サーバのホスト名

以下のコマンドで接続

$ ssh private1
    
s-yoshiki
s-yoshiki
githubtwitterqiita
Web作ってますが、インタラクティブなプログラミングも好きです。
JavaScript / Vue / node.js / PHP / AWS / OpenCV

関連記事

ファイルの1行目を表示 Linuxコマンド head
head コマンド例 headコマンドでファイルの 1行目もしくは指定した行数だけ表示する方法。 head 利用できるオプション コマンド例 の 1行目だけを表示 の 5行目までを表示 カレントディレクトリ以下の全てのtxtファイルの1行目を表示

Amazon S3 と ローカルファイルのチェックサムの比較
s3apiでEtagを取得 検証 マルチアップロード時の注意点 Amazon S3 の Etagを使ってファイルの整合性チェックをする。 s3apiでEtagを取得 S3 APIを利用するとEtagを取得します。この値はmd5のハッシュ値になります。 検証 MD…

Ansible で Docker に LAMP環境を構築するハンズオンを作った
リポジトリ リポジトリ構成 Docker構成 Ansible role の構成 プロビジョニングの実施 ansibleでdocker上にApache MariaDB PHP…

Macでも利用できるDBクライアント MySQL PostgreSQL Oracle など
デスクトップ系ツール TablePlus DBeaver MySQL Workbench Sequel pro Webアプリケーション phpMyAdmin Adminer 参考 Macで利用できるDB (MySQL PostgreSQL Oracle…

DockerでMySQL5.1.73を利用する。docker-composeから起動
Dockerのインストールから実行まで docker-compose から起動 詳細 Docker から MySQL 5.1.73 を利用する。 Dockerのインストールから実行まで docker imageの pull。 119MB…

Proxy環境下でcurlを実行する
コマンドオプションで設定する 環境変数に設定する curlrc に記述する おまけ: curlのオプション Proxy (プロキシ) 環境下でcurl…

inotify-tools rsync unison を利用してディレクトリを同期する
環境・バージョン情報等 inotify-tools バージョン情報 インストール inotifywait + rsync で同期する inotifywait + unison で同期する unisonの設定 同期コマンド 参考 inotify-tools…

fswatch rsync unison を使ってリアルタイムで同期する
環境・バージョン情報等 fswatch バージョン情報 インストール fswatch + rsync で同期する fswatch + unison で同期する unisonの設定 同期コマンド 参考 fswatch + rsync or fswatch…

macOSにOpenCV4をインストール
パッケージの情報 インストール 試す with Python3 macOS (MacBook Pro 2018 13 inchi)にhomebrewを用いてOpenCVをインストールする方法。 パッケージの情報 まず、brew search と brew info…

AWS System Manager(SSM)でEC2にSSHを実行! ポート解放なし
環境 クライアント環境 macOS mojava AWS CLI Session Manager Plugin リモート環境 Ubuntu 18.04 amazon-ssm-agent クライアント環境のセットアップ macOS に Session Manager…

最新の投稿

SQL整形ツールを作成した
特徴 使い方 FW/ライブラリ等 nuxt sql-formatter-plus Monaco Editor おまけ ソース SQL整形ツールを作成しました。 URLはこちらです。 SQL…

ファイルの1行目を表示 Linuxコマンド head
head コマンド例 headコマンドでファイルの 1行目もしくは指定した行数だけ表示する方法。 head 利用できるオプション コマンド例 の 1行目だけを表示 の 5行目までを表示 カレントディレクトリ以下の全てのtxtファイルの1行目を表示

Amazon S3 と ローカルファイルのチェックサムの比較
s3apiでEtagを取得 検証 マルチアップロード時の注意点 Amazon S3 の Etagを使ってファイルの整合性チェックをする。 s3apiでEtagを取得 S3 APIを利用するとEtagを取得します。この値はmd5のハッシュ値になります。 検証 MD…

github.io / gitlab.ioで公開されている質の高い技術ドキュメント
AWSによるクラウド入門 Pythonプログラミング入門 普通の人が資産運用で99点をとる方法とその考え方 2018年の段階で私が知らないこと github.io / gitlab.io で無料で公開されている興味深いドキュメントのmemo AWS…

10進数から2進数 2進数から10進数への変換 JavaScript
10進数から2進数 2進数から10進数 テスト 10進数から2進数、2進数から10進数への変換を行うJavaScriptのコードの紹介。 JSの場合、10進数から2進数への変換はメソッド。2進数から1…

JavaScriptの配列ショートハンド (AtCoder用)

JavaScriptでワーシャルフロイド法を実装
AtCoder ABC012 D問題 D - バスと避けられない運命 解説 実装 AtCoder ABC012 の D問題でワーシャルフロイド法が利用できる問題が出てきたので、 JavaScriptで実装しました。 AtCoder ABC012 D問題 D…

GitHub Actions で Gatsby をビルドし Amazon S3 にデプロイする
GitHub Actions について あらかじめ準備しておくもの AWS IAM ユーザを環境変数にセットする workflowの記述 ビルド バッジを利用する 終わりに 参考にしたところ Gatsbyで作った静的サイトを、GitHub Actions…

cloudinaryによる画像ファイルの管理 はじめてみる
目的 cloudinary について 他のサービスとの比較 料金プラン アカウントの登録 利用してみる ダッシュボード 画像の編集 APIベースでのアクセス 感想 参考 画像の管理や配信、さらには加工といった事ができるsaas型のcloud…

JavaScriptによる2分探索(バイナリサーチ) のサンプルコード
2分探索について ソース 参考 JavaScriptで2分探索(バイナリサーチ)を実装してみました。…

Tags

Dates

© 2020   404 motivation not found