多段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

関連記事

Gitにプロキシを設定する
プロキシを設定する 確認 Gitでプロキシを通しておくメモです。 プロキシを設定する 以下のコマンドでproxyを通します。 ※ がプロキシのURL…

Homebrew で php7.4 + Xdebug をインストール
php7.4のインストール Xdebugのインストール php.ini に追記 参考にさせていただいたサイト phpunitのカバレッジを算出を行うためにMacにHomebrewでphp7.4をインストールしようとした際の記録です。 php7.…

CentOS で スマートにプロキシを設定する
コマンドライン上で通す よりスマートに設定する 設定ファイルに記述 CentOSでプロキシを通す設定のメモです。 プロキシ環境で yum/dnf でリポジトリを更新する場合や、curl/wget…

MySQL8.0 で利用できるパラメータを表示する方法
オプションの表示 mysql8.0でmy.cnfなどで利用できるパラメータ一覧を出す方法。 オプションの表示 オプションの表示は次のコマンドで実施できます mysqld — The MySQL Server 【MySQLパラメーター比較資料】MySQL 5.…

CentOS に MySQL8.0をインストールする
はじめに 環境 起動 MySQLインストール my.cnf の設定 プロセス立ち上げ エラー The designated data directory /var/lib/mysql/ is unusable. You can remove all files…

PHP-FPM(php7.4) Apache2.4 on Ubutnu20.04 Webサーバ構築
環境 パッケージの更新 Apache と PHP のインストール Apache のサービスを開始する PHPファイルを作成 参考にしたサイト Ubuntu20.04 に PHP7.4 + Apache2.4 をインストールしてWeb…

UNIXドメインソケット通信 vs INETドメインソケット通信 php-fpmで動作させる場合の違いについて
結論 ソケット通信について ソケットについて ソケット通信の種類 UNIXドメインソケット通信を行う場合のメリット 参考にしたサイト php-fpm の設定方法で調べた際にIPとポートで設定するパターンとUNIX…

homebrew-core is a shallow clone. 対処法
homebrew で homebrew-core is a shallow clone.と 表示されたエラー 対処法 homebrew で homebrew-core is a shallow clone.と homebrewでupdate…

ファイルの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…

最新の投稿

[JS]ラジアンから度数に度数からラジアンに変換する
コード 度数からラジアンへ ラジアンから度数へ サンプル ラジアンから度数に度数からラジアンに変換する際のスニペット。 コード 度数からラジアンへ ラジアンから度数へ サンプル

CentOS8 に Python + OpenCV をインストール
インストール テスト CentOS8 で標準で提供されているパッケージで Python + OpenCV 環境を構築する方法です。 検証した環境は CentOS8.3 (Docker) です。 インストール まず opencv…

[Perl] CentOS8 に plenv をインストール
インストール Step1 事前準備 Step2 PATHを通す (README通りにインストール) Step2 PATHを通す ($HOME以外にplenvをインストール) Step3 Perlインストール Step4 cpanmインストール CentOS…

JS/TSのclassでclass名を取得する
コード JS/TSのconstructorを利用して自分自身のクラス名を取得する際のメモ。 コード このコードの結果は次のようになります。

CentOS6(Docker)でyum update できなくなった
エラー内容 対応 CentOS6.10 で yum update しようとしたところエラーが出てアップデートできなかったので対応した時の記録 エラー内容 以下のようなエラーが出ました。 対応 を以下のように変更したところ解決しました。

PostfixでメールリレーしてMailHogで受信する開発用Dockerコンテナの構築
環境 Dockerイメージ作成 コンテナの起動 telnetで送信テスト phpで送信テスト Postfixのリレーを介して送信されたメールをMailHog(開発用SMTPサーバ)でキャッチするDocker開発環境を構築した際のメモです。 環境 Docker…

GitLab.com のコンテナレジストリで1つのプロジェクトに複数のDockerイメージをpushする
手順 GitLab.com のコンテナレジストリで1つのプロジェクトに複数のDockerイメージをpushする方法についてのメモです。 手順 まず、gitlab.comにて適当なリポジトリを…

Python poetryでパッケージ開発 PyPIで公開 Pytestでテスト CIをGitHub Actionsで回す
Poetry でパッケージ開発 pytest でユニットテストを実施しカバレッジを算出する パッケージをビルドし PyPI で公開する 検証環境にデプロイする 本番環境にデプロイする GitHub Actions で CI を回す codecovの設定 GitHub…

Perlでconstant(定数)をhashのキーに使う
ハマった事象 解決方法 1 括弧をつける 2 & をつける 参考にしたサイト Perlでconstant(定数)をhash…

php-fpmのステータスページを表示 Apache & htaccess
試した環境 php-fpm の pm.status_path について php-fpmのconfの設定 .htaccess の設定 アクセスしてみる 参考にしたサイト Apache環境で php-fpm のステータスページを htaccess…

Tags

Dates

© 2021   404 motivation not found