0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OpenSSHの踏み台経由での接続用config Windows10, VSCode, RemoteSSH

Last updated at Posted at 2023-01-18

環境

Windows端末

Windows10
OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
VSCode Version 1.74.3
VSCode extension Remote - SSH v0.94.0

踏み台サーバー

Debian GNU/Linux 10 (buster)

~/.ssh/config

Host jumpserver
    Host your.jumpserver.host
    User youruser
    port 22
    IdentityFile yourpath/.ssh/id_rsa
    PubkeyAuthentication yes

Host * !jumpserver
    User youruser
    port 22
    ProxyCommand ssh -F yourpath/.ssh/config -W %h:%p jumpserver
  • yourがつく部分を書き換えてください。
  • IdentifyFileはIdentityFileとタイポしがちなので注意
  • IdentiryFileのセパレーターは/でもかけます。configファイルを違うOSで使いまわすことは少ないと思いますがスラッシュで書く方が汎用性が高いと思われます。
    スラッシュ:C:/yourpath/.ssh/id_rsa
    バックスラッシュとダブルクオーテーション囲み:"C:\yourpath\.ssh\id_rsa"
  • Host * !jumpserverはjumpserver以外のホストへの接続に以下の設定を適用することになります。github.comなどは外したいこともあると思うのでその場合はHost * !jumpserver !github.comなどとスペース空けで書けばOKです。
  • ProxyCommandの部分は次のようにProxyJump your.jumpserver.hostで書くこともできます。cmdやPowerShellからsshする場合はどちらでも特に問題ないです。ただ、pythonを利用してProxyJumpを書いたconfigでSSHしようとすると自動で補完されるProxyCommand内で-FオプションのパスがセパレーターなしになってしまうためProxyCommandで明示的に指定しています。
ProxyCommand("ssh -F yourpath.sshid_rsa config -W host:22 your.jumpserver.host") 
returned nonzero exit status: ソケット以外のものに対して操作を実行しようとしました。

  • ProxyJump jumpserverとするとハングしてしまったので、ここでは名前解決できる形式で記載する必要があります。

cmd, Powershellでのコマンド

ssh your.host.ip.or.hostname

シンプルにこれだけです。うまくいかない場合は-vをつけてログを確認して進めると原因がわかりやすいです。

いろいろ試しているうちに:22とポート番号を指定してコマンドを実行していたら以下のようなエラーが出てきました。

> ssh your.host.ip.or.hostname:22

channel 0: open failed: connect failed: Name or service not known
stdio forwarding failed
kex_exchange_identification: Connection closed by remote host

はまったポイントのメモ等

  • Permission denied (publickey).のエラーはパスの指定ミスが原因でした。最後に/configや/id_rsaが抜けていたり、スラッシュやバックスラッシュに注意。
  • VSCodeで設定するRemote SSHのConfig Fileはスラッシュ形式C:/yourpath/.ssh/id_rsaで書く必要があります。Windowsのエクスプローラーからコピペするとエラーが出てしまいます。
  • Windowsではドット始まりでも隠しフォルダにはならない。
  • portは指定ておく方が安心です。
  • 今回は使いませんでしたがOpenSSHの公式ドキュメントによるとMatchを使ってもホストを指定できるようです。

以上です。SSHでてこずるとかなりストレスを感じると思うので誰かの助けになれば幸いです!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?