質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

Q&A

0回答

1417閲覧

多段sshを行う設定(名前解決・鍵ペア・ansible_ssh_extra_args)について

GotHokLin

総合スコア34

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

0グッド

0クリップ

投稿2018/12/25 07:32

編集2018/12/27 04:27

直接sshでアクセスできないサーバについて、多段sshを利用してAnsibleにて構成を管理しようとしております。

前提・実現したいこと

workというホストから、host1を経由してhost2へ多段sshで接続したいという状況です。

[work] ―(ssh)→ [host1] ―(ssh)→ [host2]

Ansibleにてhost2の構成を管理するために、workからansible-playbookを走らせるため、多段sshの設定を行っております。

workで作成した鍵ペアの公開鍵をhost1へ、host1で作成した鍵ペアの公開鍵をhost2のauthorized_keysへ追記しており、それぞれwork→host1、host1→host2へのssh接続は問題なくできております。
work→host1

$ ssh 192.168.56.41

host1→host2

$ ssh 192.168.56.42

また、参考にしているページの内容から、ssh_configに以下のように記述しております。
参考ページ 多段SSHをAnsibleで設定する | DevelopersIO

Host host1 HostName 192.168.56.41 User ansible IdentityFile ~/.ssh/id_rsa Host host2 HostName 192.168.56.42 User ansible IdentityFile ~/.ssh/id_rsa ProxyCommand ssh host1 -W %h:%p

質問1 host2への接続

この状態でworkから以下のようにすると、host1へは問題なく接続されます。

$ ssh -F ssh_config host1

しかしhost2へ接続しようとすると以下のようなエラーメッセージが表示されます。

$ ssh -F ssh_config host2 ssh: Could not resolve hostname host1: Name or service not known ssh_exchange_identification: Connection closed by remote host $

エラーメッセージ的には、host1の名前解決ができないという意味だと思いましたので、/etc/hostsに以下のように追記すると、同じコマンドでhost2へ一発で接続されます。

/etc/hosts内追記 192.168.56.41 host1

追記前のhostsファイルやDNSにてhost2が解決できない状況なのである意味わかりやすい状況ですが、指定したssh_configファイル内でHostに指定したホスト名が利用できないものでしょうか。

質問2 公開鍵

work→host1への鍵(以下鍵A)、host1→host2への鍵(以下鍵B)は別のものを用意しておりました。
いろいろ試していると、鍵Aの公開鍵をhost2に設置しても、先程と同じコマンドで問題なくhost2へ接続できます。

$ ssh -F ssh_config host2

host1へは鍵Aの秘密鍵は設置しておりません。
(host1の~/.ssh/id_rsaは鍵Bの秘密鍵です)
これはこのような仕様なのでしょうか。

質問3 ansible_ssh_extra_argsの利用について

参考ページには「「ansible_ssh_extra_args」を利用する方がスマートに」という記述もありました。
ansible_ssh_extra_argsを利用するとどのような利点があるのでしょうか。

補足情報(FW/ツールのバージョンなど)

work

  • CentOS 7系
  • ansible-2.7.4-1.el7.noarch
  • openssh-7.4p1-16.el7.x86_64
  • openssh-clients-7.4p1-16.el7.x86_64

host1、2

  • CentOS 6系
  • openssh-clients-5.3p1-123.el6_9.i686
  • openssh-5.3p1-123.el6_9.i686
  • openssh-server-5.3p1-123.el6_9.i686

以上となります。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問