SSHプロキシコマンドが機能しない理由を理解しようとしています。次のように、カスタムの場所にSSH設定ファイルがあります。
vagrant@ansible:~$ cat ~/.ssh/cml-config
Host mgmt-lxc
HostName 10.17.238.146
IdentityFile ~/.ssh/id_rsa
User Rod
Host 10.255.0.*
ProxyCommand ssh -W %h:%p mgmt-lxc
vagrant@ansible:~$
ジャンプホストにSSHで接続し、そこから他のデバイスに接続できます。
vagrant@ansible:~$ ssh -F ~/.ssh/cml-config mgmt-lxc
Rod@mgmt-8Fe5bN$ ssh [email protected]
Warning: Permanently added '10.255.0.47' (RSA) to the list of known hosts.
,,,,,
/'''\
( o o )
-oOOO--(_)--OOOo-------------------------------------------
Router: Core-1
Secured system for authorized users only.
.oooO Unauthorized access is strictly prohibited.
( ) Oooo. All activities may be logged and monitored.
---\ (----( )--------------------------------------------
\_) ) /
(_/
Password:
ただし、カスタムSSHキーを使用して10.255.0.47に直接SSHを試みると、エラーが発生します。
vagrant@ansible:~$ ssh -F ~/.ssh/cml-config [email protected]
ssh: Could not resolve hostname mgmt-lxc: Name or service not known
ssh_exchange_identification: Connection closed by remote host
vagrant@ansible:~$
私はUbuntu Xenial64を実行しています。
答え1
-F /the/path/to/.ssh/cml-config
asとして使用されているssh -W
コマンドを追加しますProxyCommand
(そのパスがここで機能するかどうかわからないので、~
一度試してみてください。フルパスを使用することもできます)。
それ以外の場合は、ssh
対話型コマンドが実行されますが、実際の名前解決ではなく、構成ファイルで使用された別名であることをssh -W ... mgmt-lxc
確認するために読み取る必要がある構成ファイルがないためです。mgmt-lxc
または、IPv4mgmt-lxc
アドレス/etc/hosts
またはそれに対応するアドレスを追加してください10.17.238.146
。
あるいは、.ssh/config
デフォルトですべてを入力すると、使い方が簡単になります。