WindowsでOpenSSHProxyCommandを使用して、device1を介してdevice2に接続しようとしています。 Device2は、ProxyCommandを使用せずにxxxxxポート転送と接続を要求します(ただし、最初にdevice1に接続してからdevice2に接続する必要があり、簡単なワンステップ接続が必要です)。
次のようにC:\ Program Files\OpenSSH\etc\ssh_configファイルを作成しました。
Host device1
Hostname xxx.xxx.xx.xx
User root
Host device2
ProxyCommand ssh -q device1 nc -q0 localhost xxxxx
今私がタイプするとき
ssh user@device2
私は得る
/bin/sh: No such file or directory
write: Broken pipe
Linux OSでこれを確認しましたが、問題なく動作しました。何が悪いのか説明してもらえますか?
さらに、C:\ Program Files\OpenSSH\home\user\.ssh\configで構成を作成しようとしましたが、同じ結果が得られました。
設定ファイルを削除すると、
ssh: Could not resolve hostname device2: Name or service not known
したがって、ファイルは検出されたようです。
OpenSSH_7.6p1、OpenSSL 1.0.2k、2017年1月26日、およびWindows10を使用しています
私の問題は解決できませんが、解決できないので、私はこれを理解したと思います。
私の調査とおかげで https://superuser.com/users/213663/martin-prikryl ProxyCommandをサポートするWindows用のOpenSSHのビルドがないことを知りました(少なくとも私はできませんでした) 1つを見つけてください、そして彼らのサイトにはそのような情報があります)。
私が得た理由:
/bin/sh: No such file or directory
write: Broken pipe
OpenSSHのビルドが悪いことが原因でした。からダウンロードしました
https://sourceforge.net/projects/sshwindows/
そして、そこのレビューによると、このビルドは壊れています!使用しないでください!このOpenSSHをアンインストールし、Webサイト(またはWindows 10のオプション機能)から公式のものをインストールした後、正しいエラーが発生しました:
Proxy connect is not supported in Windows yet
私はWindowsでProxyJump
を使いたかったので、今日これと戦いました。問題は、Windowsのopensshが間違ったsshを呼び出す可能性があり、それが私には機能しなかったことにあるようです。
λ ssh.exe -v target-via-pj
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
debug1: Reading configuration data C:\\Users\\nico/.ssh/config
debug1: C:\\Users\\nico/.ssh/config line 41: Applying options for target-via-pj
debug1: Setting implicit ProxyCommand from ProxyJump: ssh -v -W '[%h]:%p' my-proxy
debug1: Executing proxy command: exec ssh -v -W '[XXX.XXX.XXX.XXX]:22' my-proxy
CreateProcessW failed error:2
posix_spawn: No such file or directory
私にとってうまくいくのは、ProxyCommandを明示的に指定することです。これが私のプロキシとターゲットのWindowsでの私の定義です。
Host my-proxy
HostName 192.168.66.22
User user
IdentityFile ~/.ssh/id_rsa
Host target-via-pj
Hostname XXX.XXX.XXX.XXX
User user
ProxyCommand ssh.exe -W %h:%p proxy
IdentityFile ~/.ssh/id2_rsa
これはにつながります:
λ ssh.exe -v target-via-pj
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
debug1: Reading configuration data C:\\Users\\nico/.ssh/config
debug1: C:\\Users\\nico/.ssh/config line 41: Applying options for target-via-pj
debug1: Executing proxy command: exec ssh.exe -W XXX.XXX.XXX.XXX:22 proxy
debug1: key_load_public: No such file or directory
debug1: identity file C:\\Users\\nico/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file C:\\Users\\nico/.ssh/id_rsa-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_for_Windows_7.7
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
debug1: match: OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 pat OpenSSH* compat 0x04000000
debug1: Authenticating to XXX.XXX.XXX.XXX:22 as 'user'
お役に立てば幸いです。