<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Security &#8211; Jeffrey Bostoen</title>
	<atom:link href="https://jeffreybostoen.be/category/security/feed/" rel="self" type="application/rss+xml" />
	<link>https://jeffreybostoen.be</link>
	<description>Freelance iTop consultant and developer - IT Consulting - Official iTop Partner</description>
	<lastBuildDate>Fri, 20 Mar 2026 14:46:28 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://jeffreybostoen.be/wp-content/uploads/2023/01/cropped-android-chrome-512x512-1-32x32.png</url>
	<title>Security &#8211; Jeffrey Bostoen</title>
	<link>https://jeffreybostoen.be</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>BitWarden 2026 as SSH agent for Visual Studio and Windows Subsystem for Linux (WSL)</title>
		<link>https://jeffreybostoen.be/bitwarden-2026-as-ssh-agent-for-visual-studio/</link>
		
		<dc:creator><![CDATA[Jeffrey Bostoen]]></dc:creator>
		<pubDate>Tue, 17 Mar 2026 20:24:15 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[bitwarden]]></category>
		<category><![CDATA[openssh]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[visual studio]]></category>
		<guid isPermaLink="false">https://jeffreybostoen.be/?p=1455</guid>

					<description><![CDATA[I&#8217;m writing this in March 2026. The procedure already changed a couple of times because of BitWarden upgrades. Goal My objective is to be able to use the SSH keys stored in BitWarden in Visual Studio, and more in particular in combination with the SSH FS &#8211; Visual Studio Marketplace extension. This SSH FS extension [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>I&#8217;m writing this in March 2026. The procedure already changed a couple of times because of BitWarden upgrades.</p>



<h2 class="wp-block-heading">Goal</h2>



<p>My objective is to be able to use the SSH keys stored in BitWarden in Visual Studio, and more in particular in combination with the <a href="https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs">SSH FS &#8211; Visual Studio Marketplace</a> extension.</p>



<p>This SSH FS extension allows users to connect to a remote server using the SSH protocol, and to mount folders and write to remote files.</p>



<h2 class="wp-block-heading">Prerequisite</h2>



<p>Current Microsoft Windows versions come with their own OpenSSH service.</p>



<p>We want to use the standard OpenSSH pipe, and make Bitwarden prompt to authorize the SSH keys stored in BitWarden.</p>



<p>To accomplish this, we must disable the OpenSSH service. Otherwise, BitWarden can not take over.</p>



<pre class="wp-block-code"><code>Stop-Service ssh-agent -Force
Set-Service -Name ssh-agent -StartupType Disabled</code></pre>



<p>Now, confirm that <strong>no</strong> pipes are shown anymore. The following command should not list anything related to openssh-ssh-agent anymore.</p>



<pre class="wp-block-code"><code>&#91;System.IO.Directory]::GetFiles("\\.\pipe\") | Where-Object { $_ -like "*ssh*" }</code></pre>



<h2 class="wp-block-heading">Enabling the BitWarden SSH agent</h2>



<ol class="wp-block-list">
<li>Start BitWarden. If it was already running, restart it. It may be necessary to do this explicitly as an administrator. </li>



<li>Go to Settings &gt; SSH Agent.</li>



<li>Ensure Enable SSH agent is checked.</li>
</ol>



<p>Check if this shows the pipe:</p>



<pre class="wp-block-code"><code>&#91;System.IO.Directory]::GetFiles("\\.\pipe\") | Where-Object { $_ -like "*ssh*" }</code></pre>



<p>The output should be this:</p>



<pre class="wp-block-code"><code>\\.\pipe\openssh-ssh-agent</code></pre>



<p>If you try the following command, it should now list the SSH keys that you have available in BitWarden.</p>



<pre class="wp-block-code"><code>ssh-add -l</code></pre>



<p></p>



<h2 class="wp-block-heading">Configuring SSH FS in VS Code</h2>



<p>(Re)start Visual Studio. When you go to SSH FS and edit a configuration for a remote server, focus on this:</p>



<ul class="wp-block-list">
<li>Don&#8217;t set a private key; don&#8217;t point to a private key file.</li>



<li>Look for the <strong>Agent</strong> setting and make sure it points to<strong> \\.\pipe\openssh-ssh-agent</strong></li>
</ul>



<p>This should be enough.</p>



<p>As soon as you want to connect to this remote server within VS Code, you should see BitWarden requesting your authorization.</p>



<h2 class="wp-block-heading">Using the SSH agent in WSL</h2>



<p>If you install for example an Ubuntu distribution and use bash, you may be inclined to try this simple listing of SSH keys &#8211; and see it fails.</p>



<pre class="wp-block-code"><code>jbostoen@ltJeffrey2024:/mnt/c/Users/jbost$ ssh-add -l
Could not open a connection to your authentication agent.</code></pre>



<p>The secret sauce is that you can actually use <strong>ssh.exe </strong>and <strong>ssh-add.exe</strong> &#8211; Which work!</p>



<pre class="wp-block-code"><code>jbostoen@ltJeffrey2024:/mnt/c/Users/jbost$ ssh-add.exe -l
256 SHA256:xxx somename (ED25519)</code></pre>



<p>If need, you can alias those commands.</p>



<pre class="wp-block-code"><code>nano ~/.bashrc</code></pre>



<p><br>Add this alias at the bottom:</p>



<pre class="wp-block-code"><code>alias ssh='ssh.exe'
alias ssh-add='ssh-add.exe'</code></pre>



<h2 class="wp-block-heading">SSH in Windows</h2>



<p>To faciliate your life, you can create this kind of <strong>config</strong> file ( <strong>%userprofile%\.ssh\config</strong> ):</p>



<pre class="wp-block-code"><code># On Windows, use forward slashes for the identity agent.

Host jump
    HostName xxx.be
	Port 1234
    User root
	IdentityAgent //./pipe/openssh-ssh-agent

Host someremotehost
    HostName 1.2.3.4
    Port 5678
    User jeffrey
    ProxyJump jump
    IdentityAgent //./pipe/openssh-ssh-agent
	</code></pre>



<p>After that, you can shorten your command syntax a lot to:</p>



<pre class="wp-block-code"><code>ssh -J jump someremotehost</code></pre>



<p></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
