<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[QuickBits]]></title><description><![CDATA[Ideas, delivered.]]></description><link>https://quickbits.io/</link><image><url>https://quickbits.io/favicon.png</url><title>QuickBits</title><link>https://quickbits.io/</link></image><generator>Ghost 5.82</generator><lastBuildDate>Tue, 07 Apr 2026 20:52:50 GMT</lastBuildDate><atom:link href="https://quickbits.io/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[AirPods Take to long to connect]]></title><description><![CDATA[<p>Recently I&apos;ve experienced a really weird issue, after installing the WaveLink software to use my dedicated microphone, once in a while, my audio would get interrupted for a split second. I thought to myself, weird, and left it there, since with wired headphones, it was more of an</p>]]></description><link>https://quickbits.io/airpods-take-to-long-to-connect/</link><guid isPermaLink="false">667bcade248e0d000159f1a1</guid><dc:creator><![CDATA[Krzysztof]]></dc:creator><pubDate>Wed, 21 Aug 2024 15:19:01 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1603351154351-5e2d0600bb77?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDN8fGFpcnBvZHN8ZW58MHx8fHwxNzI0MjUzNTI4fDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1603351154351-5e2d0600bb77?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDN8fGFpcnBvZHN8ZW58MHx8fHwxNzI0MjUzNTI4fDA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="AirPods Take to long to connect"><p>Recently I&apos;ve experienced a really weird issue, after installing the WaveLink software to use my dedicated microphone, once in a while, my audio would get interrupted for a split second. I thought to myself, weird, and left it there, since with wired headphones, it was more of an inconvenience to debug the issue than to just let it slide.</p><p>Fast forward some time and I switch back to my trusty AirPods (2nd gen) and, to my surprise, the issue is still there, but it got much much worse.<br>The symptoms were the following<br>&gt; Audio disconnects<br>&gt; Audio reconnects, but after 5-6 seconds</p><p>Okay, not too bad still, until I noticed that it was taking me 30 seconds to join calls / connect to a discord server, my AirPods were getting &quot;stuck&quot;, trying to acquire the microphone, and even worse, when these audio disconnects happened, it would take a whole 30 seconds again to be able to hear / speak again. Bad. Very bad.</p><h3 id="the-investigation">The Investigation</h3><p>I started pulling the ABC of problem solving and the first step was to, well...</p><p>1) Different pair of AirPods<br>Open, pop them in, connect, use them for a while, issue persists, at this point I&apos;m trying to see if it&apos;s any better, it seems like it, but little did I know the placebo effect was real in this one, onto the next step</p><p>2) Uninstall Wave Link<br>Drag the application to the trash bin, restart, try again, nothing, same issue, I went ahead and investigated a bit further and it seems that when you uninstall the application, the audio driver doesn&apos;t get removed, also, no official uninstall guide is available to fully remove the application, the solution was to remove it manually and reboot.</p><p><code>sudo rm -rf /Library/Audio/Plug-Ins/HAL/WaveLinkVirtualAudio.driver</code></p><p>Now that the basics are done, where do we stand? Try out for a few days, the issue is still present, also tried with a different pair of headphones.</p><h3 id="the-breakthrough">The breakthrough</h3><p>I thought to myself, randomly, half asleep one morning, what if... what if there was another audio driver for some reason that was causing the issue... So I went back into the audio plug ins folder, and low and behold, there are more sub folders than the &quot;HAL&quot; one</p><figure class="kg-card kg-image-card"><img src="https://quickbits.io/content/images/2024/06/image.png" class="kg-image" alt="AirPods Take to long to connect" loading="lazy" width="424" height="58"></figure><p>After opening all of them, and all of them being empty, except for the HAL folder, which had a file named <code>ACE.driver</code> , from an initial investigation, it seems it&apos;s used to route audio to different apps such as discord for example, so I did the only logical thing and... I removed the file and restarted my laptop and.... The issue is kinda gone? Kinda.</p><h3 id="the-aftermath">The aftermath</h3><p>Everything now works fine, except when I open slack and I get a bit of an audio stutter/reconnect, but this time it&apos;s quick, like less than 1 second. The microphone &quot;disconnects&quot; are completely gone (or unnoticeable)</p>]]></content:encoded></item><item><title><![CDATA[I participated in my first Cyber Security CTF - THEY DID WHAT?]]></title><description><![CDATA[<p>The company I work in has decided that in the spirit of Cyber Awareness month, to organize a cyber security capture the flag (CTF), we&apos;ve been told: Here&apos;s the CyberRange, here are the prizes, hack. </p><p>And so we did. But before I get to that part,</p>]]></description><link>https://quickbits.io/first-cyber-security-ctf/</link><guid isPermaLink="false">6644cd2a20e3300001576f24</guid><category><![CDATA[security]]></category><dc:creator><![CDATA[Krzysztof]]></dc:creator><pubDate>Fri, 28 Oct 2022 21:07:30 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1614064641938-3bbee52942c7?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGN5YmVyJTIwc2VjdXJpdHl8ZW58MHx8fHwxNjY2MDE2NTQy&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1614064641938-3bbee52942c7?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGN5YmVyJTIwc2VjdXJpdHl8ZW58MHx8fHwxNjY2MDE2NTQy&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="I participated in my first Cyber Security CTF - THEY DID WHAT?"><p>The company I work in has decided that in the spirit of Cyber Awareness month, to organize a cyber security capture the flag (CTF), we&apos;ve been told: Here&apos;s the CyberRange, here are the prizes, hack. </p><p>And so we did. But before I get to that part, let me explain what the CyberRange is and how the challenge was structured.</p><h3 id="the-cyberrange">The CyberRange</h3><p>It&apos;s an isolated, intentionally vulnerable application, that allows you to abuse the most common vulnerabilities on it. The vulnerabilities were not disclosed beforehand, though, the macro-categories were, let&apos;s take a look at them below:</p><p><strong>Security Misconfigurations</strong><br>Those were for example leftover pieces of code that were not supposed to make it to production</p><p><em>Example</em>:<br>1. In the HTML, there was a commented-out form with a route to authenticate without a username or password.<br><br>This could have been useful for a developer to leave to test the system out when working on it but should have never made it to production in the first place.</p><p><strong>Cross-site scripting</strong><br>Being able to execute arbitrary code via a URL parameter is not exactly intended, these exploits are dangerous as you could get access to a system via a rea, trusted URL &amp; some social engineering.</p><p><em>Example</em>:<br>1. You can XSS via URL like so <code>http://url/to/site?vulnerable_query_param=&lt;script&gt;alert(1)&lt;/script&gt;</code>, if this works, nothing stops you from writing a tiny script that sends the user authentication cookie / JWT token to a Web Service. <br><br>Or maybe you want to display a fake modal asking the person for their VPN information? You can do that. Most people can&apos;t tell :)  </p><p><strong>Broken access control</strong><br>Accessing parts of the site you were not supposed to access, be it routes, forms, etc.<br><br><em>Example</em>:<br>1. You could create a user by POSTING the right form parameters to a route that didn&apos;t have authorization checks.<br><br>2. You could access the user management page as a user.</p><p><strong>Injections</strong><br>Gaining access through SQL injection through user data, and, if the service is misconfigured, to the server files as well via <code>LOAD_FILE</code> and <code>INTO OUTFILE</code>.</p><p><em>Example</em>:<br>1. We bypassed the login form with the following query <code>&apos; OR 1=1 #</code></p><p>2. We were able to select data from the user table by aliasing inputs in the SQL query, <code>x&apos;; SELECT ssn as full_name FROM users #</code>, this would display the user&apos;s social security number in place of the user&apos;s full name in the table. </p><p>3. We were able to run a full-blown sql_shell from this injection endpoint, giving us access to the whole database. Pics below<br></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://quickbits.io/content/images/2022/10/sqlmap_in.png" class="kg-image" alt="I participated in my first Cyber Security CTF - THEY DID WHAT?" loading="lazy" width="2000" height="809" srcset="https://quickbits.io/content/images/size/w600/2022/10/sqlmap_in.png 600w, https://quickbits.io/content/images/size/w1000/2022/10/sqlmap_in.png 1000w, https://quickbits.io/content/images/size/w1600/2022/10/sqlmap_in.png 1600w, https://quickbits.io/content/images/size/w2400/2022/10/sqlmap_in.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">SQLMap running and targeting the vulnerable form</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://quickbits.io/content/images/2022/10/sqlmap_out.png" class="kg-image" alt="I participated in my first Cyber Security CTF - THEY DID WHAT?" loading="lazy" width="2000" height="421" srcset="https://quickbits.io/content/images/size/w600/2022/10/sqlmap_out.png 600w, https://quickbits.io/content/images/size/w1000/2022/10/sqlmap_out.png 1000w, https://quickbits.io/content/images/size/w1600/2022/10/sqlmap_out.png 1600w, https://quickbits.io/content/images/size/w2400/2022/10/sqlmap_out.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">SQLMap finding the sql_shell exploit and returning results from a query</span></figcaption></figure><p><strong>Bonus Points</strong></p><p>Some of the issues we managed to find did not award us points automatically as they&apos;ve been unknown to the CyberRange creators themselves. In this case, our GameMaster awarded us bonus points for finding them. </p><p>Example:<br>1. A persistent XSS exploit, such as updating the user&apos;s Full Name that was shown in the navbar to not only show the name but also to run a script!</p><p>2. The SQL shell described in the Injection part above</p><h3 id="teams-vs-individuals-and-prizes">Teams vs Individuals, and Prizes</h3><p>You could participate in the competition as an individual or team with a minimum size of 3.</p><p>I accidentally signed up as a team, so I had to invite other team members to join. One did and we also got assigned a random teammate to fill the team to a minimum of 3 members.</p><p><strong>Teamwork</strong><br>One of our team members jumped on the challenge ASAP while the other kept lagging with challenge completion, we asked them to share their instance of the CyberRange.</p><p><strong>Scoring</strong><br>Individuals would get the full amount of points on completion of a challenge and teams would get the points divided by the number of members of the team. </p><p>So for example, if one person on the team completes the challenge, it&apos;s worth 500 points and if there are 5 team members in the team, the team would only get 100 points. As the second member completes the challenge, a further 100 points get added to the team score, and so on until all members complete the same challenge to reach the 500 points maximum.</p><p><strong>Prizes</strong><br>The prizes were structured as below, with the difference being that the team reward would be equally split by the number of team members</p><table>
<thead>
<tr>
<th>Position</th>
<th>Team</th>
<th>Individual</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>1500$</td>
<td>500$</td>
</tr>
<tr>
<td>2</td>
<td>1200$</td>
<td>400$</td>
</tr>
<tr>
<td>3</td>
<td>900$</td>
<td>300$</td>
</tr>
</tbody>
</table>
<h3 id="the-process">The process</h3><p>We have set up a process with the team, once a vulnerability had been discovered, we would post it in our slack channel with the steps to reproduce. We tried to keep pace with each other while also exploring new vulnerabilities and sharing them as they were found.</p><p>Once an XSS exploit had been found, we would try it in all possible pages, places, and combinations since most of them were URL-based and had the same query parameter name. </p><p>Some XSS exploits were more complicated, for example, did you know that:</p><ul><li>You can do a nested DOM XSS like so: <code>&lt;body onload=&quot;alert(&apos;xss&apos;)&quot;/&gt;</code></li><li>Script tags are not case sensitive <code>&lt;sCrIpT&gt;alert(&apos;a&apos;)&lt;/sCrIpT&gt;</code> works as well and bypasses regex-based XSS filters.</li></ul><p>The first few days we had an overview of how the teams were doing and we kept going between the 1st and 4th place. We finally started settling in the top 3 in the last few days of the challenge. It was intense.</p><p><strong>The leaderboard</strong><br>During this whole time, we had access to the leaderboard so we could monitor how other teams were doing, if they found anything interesting (purely based on points) and try to predict how many more points we would need to win. </p><p>Well, in the last 24 hours of the CTF, the leaderboard had been disabled so everyone was playing blind! This has sent me into a bit of paranoia when it comes to other teams and their points, given how close we all were to the finish line!</p><p><strong>Trading of challenges</strong><br>A few hours before the competition was about to end, I contacted one of the people that was a participant, in the Individual Category to see if we can exchange solutions/challenges to win.</p><p>It was a win/win situation as we were not competing in the same category. We exchanged a few exploits and I picked... The sql_shell exploit... Managed to replicate it locally and submitted the solution to our GameMaster who awarded us bonus points! </p><h3 id="conclusions">Conclusions</h3><p>It was a very fun challenge that improved my view on the security of applications. Not every day do you get the possibility to hack something without repercussions!</p><p>We ended up winning, by a mere 300 points :) - we came first place while the person we traded challenges with, also managed to end up in first place with the same amount of points as we did!</p><p>At last,  just when I ran out of ideas on how to score more points I managed to realize that ego had been preventing me from seeing further and after managing to set it aside to think logically we got to the finish line with my team :)</p><p>I&apos;ll end this article with a quote from one of my team-mates:</p><blockquote>You should even sanitize your own hands before beginning to code</blockquote>]]></content:encoded></item><item><title><![CDATA[My Digital Cleanup Routine v2022.1]]></title><description><![CDATA[<p>When I started getting triggered when I opened my mailbox just to see another useless email from an app I don&apos;t use anymore, a site that keeps spamming promos, and more I knew I had to do something about it.</p><p>Just like when doing a spring cleaning relieves</p>]]></description><link>https://quickbits.io/digital-cleanup-routine-2022-1/</link><guid isPermaLink="false">6644cd2a20e3300001576f23</guid><dc:creator><![CDATA[Krzysztof]]></dc:creator><pubDate>Fri, 02 Sep 2022 18:15:48 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1541199249251-f713e6145474?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fG92ZXJ3aGVsbWVkfGVufDB8fHx8MTY2MjE0MTY4Mw&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1541199249251-f713e6145474?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fG92ZXJ3aGVsbWVkfGVufDB8fHx8MTY2MjE0MTY4Mw&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="My Digital Cleanup Routine v2022.1"><p>When I started getting triggered when I opened my mailbox just to see another useless email from an app I don&apos;t use anymore, a site that keeps spamming promos, and more I knew I had to do something about it.</p><p>Just like when doing a spring cleaning relieves me of stress and makes my life more peaceful, I thought, why not apply the same idea to my digital life? With the ever-increasing amount of apps and services, I feel burdened to open my mailbox daily.</p><p>My old digital cleanup routine used to be very simple, use the auto-categorization from Gmail and forget about it. But that wouldn&apos;t stop the emails from coming, taking space, and polluting my contact list when I want to send an email so I had to revise it into something that makes more sense.</p><p><strong>The goal </strong>is the following: I want to have fewer emails, fewer apps polluting my phone and draining my battery and I want to have control over my data.</p><h3 id="welcome-digital-cleanup-routine-v20221">Welcome, Digital Cleanup Routine v2022.1</h3><p>Every month I will try to spend a few hours doing the following:</p><ul><li>Organizing my pictures into Albums, deleting the ones I don&apos;t want</li><li>Deleting accounts and apps I no longer use</li><li>Unsubscribing from mailing lists that don&apos;t bring me any value</li><li>Delete old chats that don&apos;t bring any value</li></ul><p>Let&apos;s see how it goes!</p>]]></content:encoded></item><item><title><![CDATA[Thinking about working remotely? 10 things you need to know]]></title><description><![CDATA[<p>When I first arrived in Malta to work for my previous employer, I had no friends, didn&apos;t know any good places to go to and for the first few months, lived a bit of a dull life which was composed mostly of work and gaming.</p><p>A couple of</p>]]></description><link>https://quickbits.io/10-things-to-know-remote-work/</link><guid isPermaLink="false">6644cd2a20e3300001576f20</guid><dc:creator><![CDATA[Krzysztof]]></dc:creator><pubDate>Mon, 25 Jul 2022 20:37:25 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1483389127117-b6a2102724ae?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDE5fHxyZW1vdGUlMjB3b3JrfGVufDB8fHx8MTY1ODc3Nzg2NA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1483389127117-b6a2102724ae?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDE5fHxyZW1vdGUlMjB3b3JrfGVufDB8fHx8MTY1ODc3Nzg2NA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="Thinking about working remotely? 10 things you need to know"><p>When I first arrived in Malta to work for my previous employer, I had no friends, didn&apos;t know any good places to go to and for the first few months, lived a bit of a dull life which was composed mostly of work and gaming.</p><p>A couple of years later, an opportunity to work remotely came up and I dived head first into it without thinking much about any side effects of doing so. If you, like me, are thinking of taking this big step or have already taken it, here are the top 5 benefits and downsides I found during my journey.</p><h3 id="the-benefits-of-working-remotely">The benefits of working remotely</h3><p><strong>1) Work from Anywhere</strong><br>Having the option to work from <em>anywhere</em> is still a new concept for me, and let me tell you, 9 months after, it still feels too good to be true.</p><p><strong>2) Better work-life balance</strong><br>Not having to commute, naps after lunch, the quietness of my own home, and more time for my hobbies are helping me grow both as a developer and as a person.</p><p><strong>3) Better house economy</strong><br>Not having to rent an apartment near your office means you can save on rent and/or get a better place. Cooking delicious home food means you probably end up saving on living expenses as well. </p><p><strong>4) No forced interactions</strong><br>Too often I used to hang out with certain people in work groups which I didn&apos;t enjoy the company of, despite me not letting them ruin the moment it was still unpleasant.</p><p><strong>5) Less, and better social interactions</strong><br>If you are an introvert like me, making new meaningful connections can be a bit hard.<br><br>Not having a workplace as the first location where you look for friends makes you look somewhere else and forces you out of your comfort zone.<br><br>When the common thing between you and your friend is not strictly related to work anymore, this can lead to you forming a stronger bond with that person.</p><h3 id="the-downsides-of-working-remotely">The downsides of working remotely</h3><p><strong>1) Lack of social interactions</strong><br>Those watercooler or coffee machine discussions? The serendipity of discovering something new? That is gone.</p><p><em>To help this, my workplace introduced a &quot;watercooler&quot; weekly meeting, which helps discuss new tech and ideas.</em></p><p><strong>2) Friday beers</strong><br>That&apos;s how I met most of my friends, having a couple too many beers on Fridays led to some interesting discussions that rippled through the weekend and into the upcoming week.<br><br><em>I have replaced this by hanging out with some ex-colleagues over a nice Saturday archery session and lunch </em></p><p><strong>3) Company events</strong><br>Quarterly parties, team-building events, and traveling to offices in other countries are not a thing anymore for me. <br><br><em>I don&apos;t have a solution to this problem yet, however, I was thinking of traveling around and working from coworking spaces around Europe. </em></p><p><strong>4) The cold feeling from people</strong><br>While I am not the most social person on this planet, I can truly engage with someone after meeting them in person. Without this possibility, interactions with colleagues feel colder.<br><br><em>I haven&apos;t figured out this one yet. It&apos;s hard to network with different people of different backgrounds online.</em></p><p><strong>5) Cold-start mornings</strong><br>Finding motivation in the morning to wake up, and prepare to be a decent human being can be harder without the need to go to an office.<br><br><em>My solution to this was doing a &quot;fake commute&quot;. I would wake up, get dressed, looks nice and tidy, and go to my favorite coffee shop to have breakfast before returning home and starting my day.</em></p><h3 id="summary">Summary</h3><p>In the end, for me, the benefits of working remotely outweigh the downsides so I&apos;ll stick to that for a while.</p><p>Having to go out of my comfort zone to make new connections, and find new things to do, helps me grow both as a developer and as a person.  </p><p>The newfound time helps me explore new things such as archery, side projects, and more quality time with friends and family.</p><p><em>How about you, what is stopping you from working remotely?</em></p>]]></content:encoded></item><item><title><![CDATA[Save your ssh key password on macOS]]></title><description><![CDATA[<p>On macOS Sierra and above, you will need to input your password every time your ssh key is accessed. This can be quite annoying if you need to do it multiple times every hour, and, if your password is complex. You can let macOS handle the password for you, by</p>]]></description><link>https://quickbits.io/save-your-ssh-key-password-on-macos/</link><guid isPermaLink="false">6644cd2a20e3300001576f1c</guid><dc:creator><![CDATA[Krzysztof]]></dc:creator><pubDate>Tue, 28 Jun 2022 21:43:00 GMT</pubDate><media:content url="https://quickbits.io/content/images/2024/05/SSH-Password-Request.webp" medium="image"/><content:encoded><![CDATA[<img src="https://quickbits.io/content/images/2024/05/SSH-Password-Request.webp" alt="Save your ssh key password on macOS"><p>On macOS Sierra and above, you will need to input your password every time your ssh key is accessed. This can be quite annoying if you need to do it multiple times every hour, and, if your password is complex. You can let macOS handle the password for you, by following the guide below.</p><p>Edit <code>~/.ssh/config</code> and add the following to the end of the file:</p><pre><code>Host *
    UseKeychain yes
</code></pre>
<p>You can also use the script below to do it for you</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://gist.github.com/maff/e34fc6f6d629d7c4e097c374945a7ab2?ref=quickbits.io#file-macos-ssh-use-keychain-sh"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Update .ssh/config with &#x201C;UseKeychain yes&#x201D; (needed on macOS sierra)</div><div class="kg-bookmark-description">Update .ssh/config with &#x201C;UseKeychain yes&#x201D; (needed on macOS sierra) - macos-ssh-use-keychain.sh</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://gist.github.com/fluidicon.png" alt="Save your ssh key password on macOS"><span class="kg-bookmark-author">Gist</span><span class="kg-bookmark-publisher">262588213843476</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://github.githubassets.com/images/modules/gists/gist-og-image.png" alt="Save your ssh key password on macOS"></div></a></figure>]]></content:encoded></item></channel></rss>