Tailscale SSH 终端免密登录交互指南
本指南旨在帮助您通过几个简单的交互式步骤,配置 MacBook Pro 到 Linux 云主机的稳定、安全、免密的 SSH 连接。
步骤 1:链路自检
MacBook Pro先确认 Tailscale 与 22 端口可达。看到 pong + port 22 succeeded 即可。
tailscale ping -c 3 <TAILSCALE_IP>
nc -vz -w 3 <TAILSCALE_IP> 22步骤 2:密码登录一次
MacBook Pro用于后续把公钥写入云主机。这是唯一一次需要输入密码的操作。
ssh -o ConnectTimeout=8 -o PreferredAuthentications=password -o PubkeyAuthentication=no <SSH_USER>@<TAILSCALE_IP>步骤 3:生成并下发公钥
MacBook Pro无密钥则先生成;再将公钥写入远程主机的 authorized_keys 并设置权限。
test -f ~/.ssh/id_ed25519 || ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N ""
cat ~/.ssh/id_ed25519.pub | ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no <SSH_USER>@<TAILSCALE_IP> 'umask 077; mkdir -p ~/.ssh; touch ~/.ssh/authorized_keys; cat >> ~/.ssh/authorized_keys; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys'步骤 4:验证免密
MacBook Pro验证配置是否生效,必须看到 KEY_OK 才代表成功。
ssh -o PreferredAuthentications=publickey -o PasswordAuthentication=no <SSH_USER>@<TAILSCALE_IP> 'echo KEY_OK && whoami && hostname'步骤 5:配置别名
MacBook Pro配置本地 SSH config,后续只需执行 ssh <ALIAS> 即可秒连。
printf '\nHost <ALIAS>\n HostName <TAILSCALE_IP>\n User <SSH_USER>\n IdentityFile ~/.ssh/id_ed25519\n IdentitiesOnly yes\n' >> ~/.ssh/config && chmod 600 ~/.ssh/config
ssh <ALIAS> 'echo ALIAS_OK && whoami && hostname'步骤 6:禁用密码(可选加固)
MacBook Pro写入 00-key-only.conf,避免被 cloud-init 覆盖,确保只能密钥登录。
ssh <ALIAS> "printf '%s\n' 'PasswordAuthentication no' 'KbdInteractiveAuthentication no' 'ChallengeResponseAuthentication no' 'PubkeyAuthentication yes' > /etc/ssh/sshd_config.d/00-key-only.conf && systemctl reload ssh"
ssh <ALIAS> /usr/sbin/sshd -T | grep passwordauthentication步骤 7:最终验收
MacBook Pro预期应拒绝密码登录提示 Permission denied (publickey)。
ssh -o ConnectTimeout=8 -o PreferredAuthentications=password -o PubkeyAuthentication=no -o NumberOfPasswordPrompts=1 <SSH_USER>@<TAILSCALE_IP> 'echo SHOULD_NOT_SEE_THIS'配置验收标准
- 执行
ssh <ALIAS>可直接秒进系统 - 强制密码登录被
Permission denied拒绝 - SSHD 配置已通过
00-key-only.conf加固