Windows does have a concept for null devices as detailed here, here or here for example. All examples that I can find are about redirecting streams.
While porting a script from Linux to Windows, I came across something odd: If nul
is opened like a file, I an write to it, close it, re-open it and read the data back. Sometimes. Checking the working directory, I can see a file named nul
being created and growing as I write data to it. Ironically, I can not delete it from the explorer, only from the command line.
Windows 10 comes with its a native implementation of OpenSSH nowadays. I wanted to use an old trick: When it is looking for the known_hosts
file, I want to point it to a null device instead. On Linux, this looks as follows: ssh -o UserKnownHostsFile=/dev/null user@host
. On Windows, I tested it as follows: ssh -o UserKnownHostsFile=nul user@host
. I got a file named nul
containing the hosts. I also tried NUL
, null
and NULL
with the same result. Trying to point to \Device\Null
or /Device/Null
causes ssh
to complain that it can not find/open those files.
How do I correctly use and/or point to the null device on Windows (10)?
The JS crowd has a solution: I need to point to \\.\NUL
. This is the actual name or path of the null device, apparently.
What I'm doing is create a file C:\Users\myself\.ssh\config
(just like on Linux), with this:
# Don't save local computers to known_hosts
Host localhost 127.?*.?*.?* *.local 10.?*.?*.?* 192.168.?*.?* 172.16.?*.?* 172.17.?*.?* 172.18.?*.?* 172.19.?*.?* 172.2?.?* 172.30.?*.?* 172.31.?*.?*
StrictHostKeyChecking no
UserKnownHostsFile=\\.\NUL
This matches most IPv4 thingies/whatever that are considered private networks. Do this at home, but not in your company network though - because of reasons.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With