Advanced Setup
Access your development machines from anywhere using secure networking solutions. This guide covers recommended tools and setup procedures for reliable remote connections.
Understanding remote access
Section titled “Understanding remote access”The connectivity challenge
Section titled “The connectivity challenge”Devices on different networks cannot communicate directly due to:
- Network Address Translation (NAT)
- Firewall restrictions
- Dynamic IP addresses
- Security policies
Modern networking tools solve these challenges by creating secure tunnels between devices.
Recommended solutions
Section titled “Recommended solutions”Tailscale
Section titled “Tailscale”Creates a secure mesh network between your devices with zero configuration.
Key features:
- Automatic NAT traversal
- End-to-end encryption
- Stable device names
- Works behind firewalls
Best for: Personal devices, development teams
Setup process:
- Install Tailscale on all devices
- Authenticate with the same account
- Devices automatically discover each other
- Use device names in Kisuke (e.g.,
john-macbook)
Cloudflare Warp
Section titled “Cloudflare Warp”Simple VPN service that secures your connection without complex configuration.
Key features:
- One-click activation
- Automatic encryption
- Fast connection speeds
- Minimal battery impact
Best for: Public networks, quick setup
Corporate VPN
Section titled “Corporate VPN”For enterprise environments:
- Connect to company VPN
- Use internal hostnames/IPs
- Follow IT security policies
Setup guides
Section titled “Setup guides”Enabling SSH on your computer
Section titled “Enabling SSH on your computer”# Enable via System SettingsSystem Settings → General → Sharing → Remote Login
# Or via terminalsudo systemsetup -setremotelogin on# Ubuntu/Debiansudo apt updatesudo apt install openssh-serversudo systemctl enable --now ssh
# Fedora/RHELsudo dnf install openssh-serversudo systemctl enable --now sshd
# Check statussudo systemctl status sshWindows 10/11
Section titled “Windows 10/11”- Settings → Apps → Optional Features
- Add Feature → OpenSSH Server
- Services → OpenSSH SSH Server → Start
- Set startup type to Automatic
Network configuration
Section titled “Network configuration”Finding your IP address
Section titled “Finding your IP address”Local network:
# macOS/Linuxifconfig | grep inetip addr show
# WindowsipconfigPublic IP:
curl ifconfig.mecurl icanhazip.comFirewall configuration
Section titled “Firewall configuration”Ensure SSH port (22) is accessible:
macOS:
- System Settings → Security & Privacy → Firewall
- Allow incoming connections for Remote Login
Linux:
# UFW (Ubuntu)sudo ufw allow sshsudo ufw enable
# firewalld (Fedora)sudo firewall-cmd --permanent --add-service=sshsudo firewall-cmd --reloadWindows:
- Windows Defender Firewall → Allow an app
- Check “OpenSSH Server”
Connection methods
Section titled “Connection methods”Direct connection (same network)
Section titled “Direct connection (same network)”When devices share a network:
- Find space IP address
- Add space in Kisuke
- Use local IP (e.g.,
192.168.1.100)
Tailscale connection
Section titled “Tailscale connection”After Tailscale setup:
- Check device name in Tailscale admin
- Use as hostname in Kisuke
- Connection works from anywhere
Port forwarding
Section titled “Port forwarding”For direct internet access:
- Configure router port forwarding
- Forward external port to internal IP:22
- Use public IP in Kisuke
- Consider security implications
Security best practices
Section titled “Security best practices”Authentication
Section titled “Authentication”- Use strong passwords (15+ characters)
- Enable two-factor where available
- Disable root login via SSH
- Change passwords regularly
Network security
Section titled “Network security”- Always use encrypted connections
- Verify host fingerprints on first connection
- Keep software updated on all devices
- Monitor access logs regularly
SSH hardening
Section titled “SSH hardening”Recommended sshd_config settings:
PermitRootLogin noPasswordAuthentication yesMaxAuthTries 3Protocol 2AllowUsers yourusernameTroubleshooting connections
Section titled “Troubleshooting connections”Common issues
Section titled “Common issues”Connection refused
- Verify SSH service is running
- Check firewall allows port 22
- Confirm correct IP/hostname
- Test with:
nc -zv hostname 22
Network unreachable
- Check internet connectivity
- Verify VPN/Tailscale status
- Test with:
ping hostname - Check routing:
traceroute hostname
Authentication failed
- Verify username spelling
- Check password for typos
- Ensure caps lock is off
- Review auth logs on server
Timeout errors
- Check network latency
- Adjust SSH timeout settings
- Enable keepalive packets
- Consider using mosh for unstable connections
Diagnostic commands
Section titled “Diagnostic commands”# Test SSH connectionssh -vvv user@host
# Check SSH servicesudo systemctl status ssh
# View SSH logssudo journalctl -u ssh
# Test port accessibilitytelnet hostname 22Advanced configurations
Section titled “Advanced configurations”Jump hosts
Section titled “Jump hosts”Connect through intermediate space:
Host target ProxyJump jumphost HostName internal.server User usernameSSH multiplexing
Section titled “SSH multiplexing”Reuse connections for speed:
Host * ControlMaster auto ControlPath ~/.ssh/sockets/%r@%h:%p ControlPersist 600