1. 服务器端
通常服务器端, 是指我们想要通过ssh登录的机器,
在服务器段执行以下步骤
1.1 安装 openssh server
sudo apt update
sudo apt upgrade
sudo apt install openssh-server
1.2 开启 ssh
首先使用
sudo systemctl status ssh
确认是否为 activate 状态;
如果没有启动,则执行
sudo systemctl enable ssh
sudo systemctl start ssh
一般服务器上安装ssh完成后,会自动启动ssh服务,并且默认随系统启动,如果没有,请手动启动:
sudo /etc/init.d/ssh start #服务器启动ssh-server服务,
sudo /etc/init.d/ssh stop #server停止ssh服务
sudo /etc/init.d/ssh restart #server重启ssh服务
1.3 配置防火墙
sudo ufw allow ssh
sudo ufw enable
sudo ufw status
1.4 查看 服务器ip
服务器ip 地址
ifconfig
服务器名称
whoami
ifconfig 参数解释
2. 本地用户ssh 登录服务器
个人的ubuntu 系统是,是默认安装了 ssh 的 客户端,
sudo apt install openssh-client #本地主机运行此条,实际上通常是默认安装client
2.1 登录方式
故可以直接使用 如下方式 登录
ssh service-name@ip
比如 machine@127.0.0.1
ssh yucicheung@10.170.11.147
#或
ssh -l yucicheung 10.170.11.147
# 如果需要调用图形界面程序
ssh -X yucicheung@10.170.11.147
当连接成功时,则命令提示副前的用户名@主机名由本地主机变成服务器的信息,即表明现在该终端所有的命令都是在服务器中执行。
如果服务器端的SSH服务没有开启在22端口,那么SSH链接时则需要用-p指定端口(如202):
或者有时加上端口号
ssh service-name@ip -p 12334
2.2 退出登录
ctrl + d 或者 exit
3. 钥匙配对
利用公钥省去口令输入,
每次登录远程主机都需要输入密码是很不便捷的,如果要加速这一步骤,可以利用密钥对进行连接,主要思路是:生成一对公钥私钥,私钥在local主机上,公钥在远程服务器上,每次建立ssh连接自动检查密钥对是否匹配。
3.1 本地主机生成密钥对
ssh-keygen -t rsa #-t表示选择类型,类型为rsa
执行以后会在$HOME目录下生成一个.ssh文件夹,其中包含私钥文件id_rsa
和公钥文件id_rsa.pub
。
3.2 复制公钥到服务器
# 登录远程服务器
ssh yucicheung@10.170.11.147
# 在服务器上创建.ssh文件夹,如果已经存在就跳过此步
mkdir .ssh
# 为了保证.ssh文件夹的安全,应取消其他用户对文件夹的所有权限
chmod 700 .ssh
# 退出登录
exit
# 本地主机的公钥复制到远程服务器,作为已认证密钥
scp /home/yucicheung/.ssh/id_rsa.pub yucicheung@10.170.44.206:/home/yucicheung/.ssh/authorized_keys
在进行以上配置以后,再进行连接时,就可以免去口令(密码)的输入了。
4. 远程控制Ubuntu
Ubuntu 向日葵被远控无法显示图形化界面的解决方案;
向日葵需要使用 lightdm 插件来渲染界面,但本机没有安装该插件。本机默认使用 gdm3 插件进行图形化界面的管理。其中,lightdm 和 gdm3 都是 Linux 下的显示管理器(Linux X display manager)。
修复过程如下,首先执行如下的 apt 命令安装 lightdm。在安装过程中,会弹出图 1 的配置界面,此时选择 lightdm 作为默认的显示管理器。
sudo apt install lightdm
如果在安装过程中没有弹出图 1 的配置界面,则可使用 dpkg-reconfigure 命令进行配置,执行如下的命令同样可以弹出图 1 的配置界面。
sudo dpkg-reconfigure lightdm
至此,该问题已被修复。如未修复,建议重启计算机。