2016-06-15 19 views
0

私はちょうどAnsibleを使い始めています。設定ファイルにいくつか問題があります。設定可能なファイル

私のアシスタントソケットパスファイルが長すぎたため、当初はホストにpingできませんでした。私はこれをAnsible: SSH Error: unix_listener: too long for Unix domain socketを参照して変更し、私のパスをcontrol_path=~/%%h‐%%rに変更しました。

これらのエスケープシーケンス(%%h and %%r)は何ですか?入手できる資料はありますか?私の道を小さくする方法はありますか? IPアドレスのエスケープシーケンスはありますか?

ありがとうございます!

答えて

0

これは実際にAnsibleとは関係ありません。制御パスは、SSHがマルチプレックスセッション用のソケットを格納する場所です。

http://man.openbsd.org/ssh_config.5

ControlPath
上記のControlMaster部または文字列「なし」に記載されているように、接続の共有を無効にするために、接続の共有のために使用される制御ソケットへのパスを指定します。パスでは、 '%L'はローカルホスト名の最初の要素に置き換えられ、 '%l'はローカルホスト名(任意のドメイン名を含む)に置き換えられ、 '%h'はターゲットに置き換えられます'%n'はコマンドラインで指定された元のターゲットホスト名、 '%p'は宛先ポート、 '%r'はリモートログインユーザ名、 '%u'はユーザ名で、 '% iはssh(1)を実行しているユーザの数値ユーザID(uid)で、連結のハッシュでは '%C'%l%h%p%rです。便宜的な接続共有に使用されるControlPathには、少なくとも%h、%p、%r(または%C)が含まれ、他のユーザーが書き込み可能でないディレクトリに配置することをお勧めします。これにより、共有接続が一意に識別されます。

したがって、ホストIPのプレースホルダはありません。パスを短くすることは常に妥協です。 ~/%%h‐%%rは、すでに安全ではない最短の解決策です。別のリモートユーザーを使用してホストに接続することを保証できない場合は、%rを削除して%hのみを使用しても安全です。

問題がホスト名が長すぎる場合は、.ssh/configにエイリアスを作成するのが解決策ですか?

host short-name 
    hostname very-long-name-that-makes-control-path-location-exceed-the-possible-length-limitation 

%nは、代わりに%hを用いることができるshort-nameを参照すべきです。

+0

vアドバイスありがとうございました! –

関連する問題