你需要在本地终端执行的完整步骤
需要注意 ios termius 需要单独使用自己生成的key,正相互备份下
第一步:生成密钥
bash
ssh-keygen -t ed25519 -C "main-key" -f ~/.ssh/id_ed25519 -N ""
第二步:写入 config
bash
cat >> ~/.ssh/config << 'EOF'
Host aliyun
HostName 4.11.5.11
User root
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60
Host lijianjian
HostName 10.99.18.138
User root
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60
Host ubuntu128
HostName 10.86.95.98
User kyle
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60
EOF
第三步:把公钥推送到三台服务器
bash
# 会提示输密码,各输一次
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@4.1.5.7
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@13.99.18.18
ssh-copy-id -i ~/.ssh/id_ed25519.pub kyle@100.8.195.9
第四步:测试连接
bash
ssh aliyun
ssh lijianjian
ssh ubuntu128
能直接进去不问密码就成功了。
其他电脑使用
chmod 别忘记了,不然识别不到
# 1. 拉取 dotfiles
git clone git@github.com:you/dotfiles.git
ln -s ~/dotfiles/.ssh/config ~/.ssh/config
# 2. 从 Bitwarden 取出私钥,粘贴保存
vim ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
# 验证 private key 格式正确性
ssh-keygen -y -f ~/.ssh/id_ed25519
Load key "/Users/kyle/.ssh/id_ed25519": invalid format
# 3. 直接可以用
ssh vps1
要保证换行符正确性
-----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW QyNTUxOQAAACBecXgZoRXDuyoCUHf8m1Xy0NsbFSN1dM49N2VEjcWxnQAAAJCN6Jtojeib aAAAAAtzc2gtZWQyNTUxOQAAACBecXgZoRXDuyoCUHffLQ 2xsVI3V0zj03ZUSNxbGdAAAACG1haW4ta2V5AQIDBAU=
-----END OPENSSH PRIVATE KEY-----
server 关闭 password 登录
一定要确认可以登录,不然锁在外面就尴尬了
ssh
vim /etc/ssh/sshd_config
# 设置不支持 root password login
PermitRootLogin prohibit-password
# 重启 sshd 生效
systemctl restart sshd
bitwarden 私钥共享
因为格式问题,记住要存放到如下中,不要存在文本中
我遇到换行变成了空格
IOS termius 使用
单独ssh key,相当于备份使用了
