scsipub

Block devices over the internet.

One click. No account. No VPN. No VM.

scsipub serves disk images over iSCSI — the block storage protocol built into Linux, Windows, and macOS. Pick an image, get credentials, mount the remote disk in seconds.

Pick an image ↓
1

Pick an image

Choose from the catalog. Each session gets its own copy-on-write layer.

2

Get credentials

A unique IQN and CHAP username/secret are generated for your session.

3

Run iscsiadm --login

The disk appears as /dev/sdX. Mount, boot, or dd.

Netboot & rescue

Boot a rescue ISO or fresh installer on a bricked machine — no USB stick needed.

CI ephemeral disks

Fresh block device per build. Throw it away when the job finishes.

Remote dev environments

Attach your lab disk from anywhere. State persists across machines.

OS testing

Spin up a pristine OS image on real hardware without flashing anything.

Available images

4 available

alpine-3.20

iso

61.0 MB

Minimal Linux. Fast boot, busybox + apk. Good for shell access and scripting. Has open-iscsi in repos.

Memtest86plus-7.20

iso

5.9 MB

Memory diagnostics. Boots directly into RAM test — no OS. Classic network boot use case.

Debian-12-Cloud

raw

3.0 GB

Debian 12 cloud image. Cloud-init ready, stable base for development. Same image used in CI testing.

alpine-3.21

iso

63.0 MB

Blank scratch disk

Empty 64.0 MB — reads return zeros, writes fill up to your tier's limit. Good for scratch partitions, filesystem experiments, or dd targets.

No-setup targets

These targets accept AuthMethod=None — the initiator just connects. Each TCP connection is its own ephemeral session; overlay is discarded on disconnect. Size cap per session matches the free-unreg tier write limit. open-iscsi doesn't speak TLS natively, so the TLS recipe below terminates it locally with stunnel and has iscsiadm connect to loopback.

Blank disk

iqn.2025-01.pub.scsipub:blank
# One-time: install stunnel
sudo apt install -y stunnel4    # Debian/Ubuntu
# sudo apk add stunnel          # Alpine

# Start a local TLS tunnel (keep this shell open, or run as a service)
cat > /tmp/scsipub-stunnel.conf <<EOF
pid =
foreground = yes
[scsipub-tls]
client = yes
accept = 127.0.0.1:3260
connect = scsipub.com:3261
verifyChain = yes
CApath = /etc/ssl/certs
checkHost = scsipub.com
EOF
sudo stunnel /tmp/scsipub-stunnel.conf &

# Point iscsiadm at the local tunnel
iscsiadm -m node -T iqn.2025-01.pub.scsipub:blank -p 127.0.0.1:3260 -o new
iscsiadm -m node -T iqn.2025-01.pub.scsipub:blank -p 127.0.0.1:3260 \
  -o update -n node.session.auth.authmethod -v None
iscsiadm -m node -T iqn.2025-01.pub.scsipub:blank -p 127.0.0.1:3260 --login

alpine-3.20

iqn.2025-01.pub.scsipub:image.alpine-3.20
# One-time: install stunnel
sudo apt install -y stunnel4    # Debian/Ubuntu
# sudo apk add stunnel          # Alpine

# Start a local TLS tunnel (keep this shell open, or run as a service)
cat > /tmp/scsipub-stunnel.conf <<EOF
pid =
foreground = yes
[scsipub-tls]
client = yes
accept = 127.0.0.1:3260
connect = scsipub.com:3261
verifyChain = yes
CApath = /etc/ssl/certs
checkHost = scsipub.com
EOF
sudo stunnel /tmp/scsipub-stunnel.conf &

# Point iscsiadm at the local tunnel
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.alpine-3.20 -p 127.0.0.1:3260 -o new
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.alpine-3.20 -p 127.0.0.1:3260 \
  -o update -n node.session.auth.authmethod -v None
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.alpine-3.20 -p 127.0.0.1:3260 --login

Memtest86plus-7.20

iqn.2025-01.pub.scsipub:image.Memtest86plus-7.20
# One-time: install stunnel
sudo apt install -y stunnel4    # Debian/Ubuntu
# sudo apk add stunnel          # Alpine

# Start a local TLS tunnel (keep this shell open, or run as a service)
cat > /tmp/scsipub-stunnel.conf <<EOF
pid =
foreground = yes
[scsipub-tls]
client = yes
accept = 127.0.0.1:3260
connect = scsipub.com:3261
verifyChain = yes
CApath = /etc/ssl/certs
checkHost = scsipub.com
EOF
sudo stunnel /tmp/scsipub-stunnel.conf &

# Point iscsiadm at the local tunnel
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.Memtest86plus-7.20 -p 127.0.0.1:3260 -o new
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.Memtest86plus-7.20 -p 127.0.0.1:3260 \
  -o update -n node.session.auth.authmethod -v None
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.Memtest86plus-7.20 -p 127.0.0.1:3260 --login

Debian-12-Cloud

iqn.2025-01.pub.scsipub:image.Debian-12-Cloud
# One-time: install stunnel
sudo apt install -y stunnel4    # Debian/Ubuntu
# sudo apk add stunnel          # Alpine

# Start a local TLS tunnel (keep this shell open, or run as a service)
cat > /tmp/scsipub-stunnel.conf <<EOF
pid =
foreground = yes
[scsipub-tls]
client = yes
accept = 127.0.0.1:3260
connect = scsipub.com:3261
verifyChain = yes
CApath = /etc/ssl/certs
checkHost = scsipub.com
EOF
sudo stunnel /tmp/scsipub-stunnel.conf &

# Point iscsiadm at the local tunnel
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.Debian-12-Cloud -p 127.0.0.1:3260 -o new
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.Debian-12-Cloud -p 127.0.0.1:3260 \
  -o update -n node.session.auth.authmethod -v None
iscsiadm -m node -T iqn.2025-01.pub.scsipub:image.Debian-12-Cloud -p 127.0.0.1:3260 --login