2021.12.27  

SSHコマンドで多段接続する方法(config設定、秘密鍵利用)

Linux,  AWS,  Mac    

SSHコマンドと秘密鍵を使用してAWSの踏み台サーバーから同VPC内のプライベートサーバー(今回はDBサーバーの1号機と2号機)へ多段認証する手順をメモ書きします。

当手順は、mac、Linuxからの操作を想定しています。

まず、ローカルの端末(mac、Linux)に秘密鍵(.pem)を配置します。

秘密鍵は踏み台サーバーのものを配置します。

秘密鍵の生成方法については、以下AWS公式サイトをご参照ください。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-key-pairs.html#having-ec2-create-your-key-pair

生成した秘密鍵をローカル端末の~/.sshの中に配置します。秘密鍵の名前はhimitu.pemとします。

また、パーミションは400と設定しておきます。

chmod 400 ~/.ssh/himitu.pem

次に~/.ssh配下にconfigファイル(拡張子なし)を作成し、以下のように設定します。
このファイルは、踏み台サーバーからDBサーバー1号機またはDBサーバー2号機へ多段認証するように設定しています。

Host bastion 
  Hostname【踏み台サーバーのパブリックIPアドレス】
  User centos-user
  IdentityFile ~/.ssh/himitu.pem


Host DB1
  Hostname  【DBサーバー1のプライベートアドレス】
  User centos-user
  IdentityFile ~/.ssh/himitu.pem
  ProxyCommand ssh bastion -W %h:%p


Host DB2
  Hostname  【DBサーバー2のプライベートアドレス】
  User centos-user
  IdentityFile ~/.ssh/himitu.pem
  ProxyCommand ssh bastion -W %h:%p

Hostにはサーバーのエイリアス(別名)を設定します。

HostnameにはサーバーのIPアドレスを設定します。
※ DB1、DB2のIPは踏み台サーバーからアクセスできるIPを設定する。

Userにはそのサーバーへ接続するためのユーザー名を設定します。

IndentitiyFileには踏み台サーバーの秘密鍵を設定します。
※ DB1、DB2にも踏み台サーバーの秘密鍵を設定します。

ProxyCommandには、経由する踏み台サーバーを設定します。
※ 踏み台サーバーには設定不要。踏み台から接続されるDB1、DB2に設定。

上記の例では

ProxyCommand ssh 踏み台サーバーのエイリアス -W %h:%p

と設定しています。踏み台サーバーのエイリアス(bastion)の部分以外は、書き換え不要です。
※ Windowsの場合、ssh部分はssh.exeにします。

設定はこれで完了です。実際に接続するにはローカル端末で以下のコマンドを実行します。

ssh サーバーのエイリアス

DBサーバー1号機に接続する場合は、次のようなコマンドを実行すれば接続できます。

ssh DB1

これで、自動で踏み台サーバーを経由した上で、DBサーバー1号機に接続できます。
DBサーバー2号機も同様に以下のようにコマンドを実行すれば接続することができます。

ssh DB2
コメント
現在コメントはありません。
コメントする
コメント入力

名前 (※ 必須)

メールアドレス (※ 必須 画面には表示されません)

送信