在远程登录我的云主机时,除了开通相应端口,要在控制台设置ssh登录。

在os management中,Console connection – Create local connection – 有3个选项:

Generate a key pair for me

Upload public key file (.pub)

Paste public key

然后 create console connection

云主机生成的密钥对,下载下来时可能权限过高,要更改为600权限,生成的公钥在云主机的控制台网关上,并没有在系统内~/.ssh/authorized_keys , 所以只能通过”串口控制台”登录。在生成的公钥指纹右侧,选择Copy serial console connection for Linux/Mac

1
2
3
# ssh -i 指定下载的私钥, 及复制的一长串内容:-o ProxyCommand=  .....

ssh -i ~/.ssh/srv1.key -o ProxyCommand='ssh -i ~/.ssh/srv1.key ...' ...

连接后可能屏幕没反应,连按几下回车。然后输入用户名登录即可。

然后本地可以通过私钥生成公钥

1
2
3
4
5
6
# 在本地终端运行,获取公钥内容并复制
ssh-keygen -y -f ~/.ssh/srv1.key

# 在服务器控制台运行
echo "刚才复制的那一长串公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

以后就可以在本地端直接ssh登录了:

1
2
3
ssh -i srv1.key ubuntu@bznet1...
# 如果想让其他用户也能ssh登录,可以添加相应公钥到其他用户 ~/.ssh/authorized_keys

为了图个方便也可以同步给其他用户,比如bz用户

1
2
3
4
5
6
7
8
# 切换到 bz 用户家目录创建 .ssh 文件夹
sudo mkdir -p /home/bz/.ssh
sudo chmod 700 /home/bz/.ssh

# 将 ubuntu 用户的授权列表直接复制给 bz
sudo cp ~/.ssh/authorized_keys /home/bz/.ssh/
sudo chown -R bz:bz /home/bz/.ssh
sudo chmod 600 /home/bz/.ssh/authorized_keys

如果需要给bz用户添加sudo权限:

1
sudo usermod -aG sudo bz

查看sudo组内的所有成员:

1
2
3
grep '^sudo' /etc/group
# 或使用更专业的
getent group sudo

关于sudo配置可以参考另一篇关于sudo的博文。